Hades logoHades applet banner
Intel MCS4 (i4004) binary subtraction

applet icon

The image above shows a thumbnail of the interactive Java applet embedded into this page. Unfortunately, your browser is not Java-aware or Java is disabled in the browser preferences. To start the applet, please enable Java and reload this page. (You might have to restart the browser.)

Circuit Description

A realization of binary subtraction (4 bits) on the i4004 microprocessor based on this assembly source: sub.asm.

; sub.asm
; subtract two 4bit numbers on the Intel 4004
   FIM R0R1, 0x35 ; initialize R0=5 & R1=3
   FIM R2R3, 0    ; clear R2R3 (unused)
   LD R0     	  ; load R0 into accumulator
   SUB R1         ; subtract second number
   XCH R1         ; and store in R1

   JUN done       ; end

Yet another short program fragment, showing a single 4-bit binary subtraction.

The program first executes an FIM load immediate instruction to initialize the source registers (here, R0=5 and R1=3). We also initialize the register pair R2R3 (R2=0 and R3=0), allthough these are not used at all by this program (they will be used in the next program, showing the BCD subtraction). The program then loads R0 into the accumulator, subtracts the contents of R1 from the accumulator, and stores the result into R1. Finally, the program enters an endless loop, written as a JUN (jump unconditional) instruction that jumps to its own address.

To watch the program execution, open the user-interface of the i4004 processor and the i4001 ROM chip memory editor. (On Windows, you may have to resize and move the windows a little, so that all windows remain readable during the simulation.)

Yet again, you may want to single-step through the program with the technique explained in the MCS4 overview, because the program is so short. Type the value 1.35 into the time-interval textfield in the simulator control panel, and select the us (microseconds) value from the time-scale drop-down list. Reset the simulation by clicking the rewind button. Now, click the run-for button to run and automatically pause the simulation after the selected time interval (here 1.35 microseconds or one MCS4 clock cycle) has elapsed. Repeatedly click the run-for button to step through the program.

See also:

Print version | Run this demo in the Hades editor (via Java WebStart)
Usage | FAQ | About | License | Feedback | Tutorial (PDF) | Referenzkarte (PDF, in German)
Impressum http://tams-www.informatik.uni-hamburg.de/applets/hades/webdemos/80-mcs4/sub/sub.html