CAPC Processor Instruction Set

Click Description column for details. (Modified March 4; Modified March 11, 2002)
OP CodeAssembly CodeOperand(Address)Description
0000HLTignoredHalt the machine
0001ADDxxxxxxxxxxxxAdd [Operand] to G
0010XORxxxxxxxxxxxxExOr G with [Operand]
0011ANDxxxxxxxxxxxxAND G with [Operand]
0100LORxxxxxxxxxxxxOR G with [Operand]
0101NOTignoredNOT(G) to G
0110LDGxxxxxxxxxxxxLoad [Operand] to G
0111SDGxxxxxxxxxxxxSend G to [Operand]
1000SRJxxxxxxxxxxxxSubroutine Jump
1001JMIxxxxxxxxxxxxJump if G[15] is set(1)
1010JMPxxxxxxxxxxxxUnconditional Jump
1011INJxxxxxxxxxxxxIndirect Jump
1100INTyyyyyyyyxxxx(Software) Interrupt
1101ROLignoredRotate G one bit to left
1110KTGignoredKeyboard to G
1111NOPignoredNo Operation

CAPC Processor Fetch Cycle

For simplicity, our 16-bit processor CAPC has only one bus.
With our CLOCK generator designed in Lab1 running,
the first and regular operation is that of Fetch:

Note: A modification (*)-(**) is made to implement our circuits in LogicWorks4.
(*) Remove this signal and move it here (**).
Subcycle HDL Note
T0MAR<-PC, X<-PCcopy PC to MAR, X
T1Y<-1 (*)[, READ_MEM]copy 1 to Y(*)[, Activate READ_MEM]
T2
T3PC<-X+Ycopy X+Y (PC+1) in ALU to PC
T4
T5(**)[Output/Enable,]IR<-MBR(**)[Activate Output/Enable,] copy MBR to IR
T6
T7