Computer Science


Download and install Easycpu ENIAC package on a Windows platform. It can be installed on a Windows VM.

Click <File>, <New> and point to the folder <example> containt the assembly code fattoriable.eniac.
The program should be loaded in ASCII. If not, click the menu <cpu>, <address format>, then <symbol>. It should look as below.

Hexadecimal              ASCII
===========          ===== ===
200003                     JUMP 3
6                                6
1                                1
a02001                      LOAD @1
b88001                      STORE BX
c02002                      SUB @2
2b000c                      JZ 12
b88006                     STORE CX
f08001                      MUL BX
b88001                     STORE BX
a08006                     LOAD CX
200005                    JMP 5
10000                      HLT


(0) address starts at 0x2000, but PC=3 (address 0x2003)
(1) stack 1 (@1) has value 6
(2) stack 2 (@2) has value 1
(3) command load (0xa0) from 0x2001 to register AX (AX=6), PC=4 (address 0x2004)
(4) command store (0xb8) the value in 0x2001 to register BX at 0x8001 (BX=6), PC=5(address 0x2005)
(5) command substract (0xc0) the value 1 in 0x2002 from the register AX, PC=6 (address 0x2006)
(6) command jump (0x2b) to 0xC=12 if the result in AX is zero, PC=7 (address 0x2007)
(7) command store (0xb8) the value into register CX at 0x8006 (CX=5), PC=8 (address 0x2008)
(8) command mul (0xf0) the value of register AX by the value in register Bx at 0x8001, AX=5*6=30, PC=9 (address 0x2009)
(9) command store (0xb8) the value of register AX in register BX at 0x8001 (Bx=30),
PC=10 (address 0x200a)
(10) command load (0xa0) the value in register CX at 0x8006 to register AX (AX=CX=5),
PC=11 (address 0x200b)
(11) command jump (0x20) to address 0x5 (0x2005), PC=5 (address 0x2005)
(11) command halt (0x1) is exit. The program looped 6 times to exit.
When exit, AX=0, BX=720, CX=1, DX=0, PC=12,
CA = SI= OV = 0, ZE = EV = 1

Lab exercise:

Q1. Click menu <CPU>, then select <step by step>. Use this function to step through the assembly code.
After the statement in address 11 is first executed, what are the value of registers AX, BX, CX,
DX, and PC? Explain the function of AX, BX, CX, DX, and PC.

Q2. After statement 11 is first executed, what is the next statement to be executed? Can you tell
what is statements 5 through 11 is doing in a simple statement?

Q3: How many times the statements 5 through 11 were executed before the statement 12 is executed?
How can you tell, if you don’t step through it? Which register or memory location that you
can determine the value without stepping through all codes till exit?

Q4: Bonus: Conver the assembly code to any high-level language, such as C, C++, Java, Python.

Order now and get 10% discount on all orders above $50 now!!The professional are ready and willing handle your assignment.