Machine Instruction Code INT

In the basic machine cycle the CAPC1 processor performs Fetch Operation in the first 4 subcyles, C0 to C3. At the last subcycle C3 of Operation, a machine instruction in the form of 16 bit word is copied into the Instruction Register which is the center piece of the Execution Unit of CAPC1. The OP(eration) code, codeBit 15, 14, 13, and 12 of the machine instruction in IR is decoded immediately to identify and execute the instruction in the last 4 subcycles, C4 to C7. Each output pin from Machine Instruction Decoder represents the corresponding machine instruction and be wired to a set of registers by control lines derived from the clock subcycles C4 to C7.

We now look at the wiring of machine instruction INT. The upper 4 bit is "1100", the OP(eration) code. The lower 12 bit Operand is the (software) Interrupt Number. In CAPC1, the Interrupt Number represents the address of Interrupt Vector, a word in RAM, where the starting location of the corresponding Interrupt Service routine (for this Interrupt) is stored. Thus INT is implemented as indirect SRJ (indirect subroutine jump) as follows:

Assembly LanguageMachine Language
INT F00 1100 1111 0000 0000
Description
Store the return address in Greg and jump
to the memory location given by the contents
of the memory pointed by the Interrupt number.
Wiring of Instruction INT
SubcycleSimple HDLCircuit
C4 PC -> Greg C4
C5 IR[11..0] -> MAR C5
C6 MBR -> PC C6
Note: In order to take advantage of existing wiring, the wiring of the instruction INT is done by using C4 of SRJ and C5-C6 of arithmetic instructions.