ENEE350 Computer Organization Lecture-5 Return to lecture notes
         Extending the basic vesp architecture with 8 more instructions.
         
         

INC: Increment A

A = A+1

DEC: Decrement A

A = A-1

AND: And A and B

A = A& B

IOR: Or A and B

A = A | B

SHL: Shift A left

A << 1

SHR: Shift A right

A >> 1

MXF: Move from a location w/IX

M[IR[3:15]] = M[IX]; IX = IX + 1;

MXT: Move into a location w/IX

M[IX] = M[IR[3:15]]; IX = IX + 1;

vesp 2.0

sample output

vesp 2.1

sample output

Example 1: Looping with indexing High Level Representation int loopcount = 6; int sum,y[7],i; y[0] = 15; y[1] = 23; y[2] = -14; y[3] = 7; y[4] = 126;y[5] = 89; sum = 0; for(i = 1; i <= loopcount;i++) { sum = sum + y[i];} Mapping the array and the code Location 000: A Location 001: B Location 002: sum (cleared to 0) Location 003: loop count (initialized to 6) Location 004: index-i(initialized to the address of the 1st element of the list(location 5). Location 005: y[0] Location 006: y[1] Location 007: y[2] location 008: y[3] location 009: y[4] location 00A: y[5] location 00B: Not used location 00C: Not used The vesp code is loaded into vesp location 200. 2005---------Load 0x000F into location 5 000F 2006---------Load 0x0017 into location 6 0017 2007---------Load 0xFFF2 into location 7 FFF2 2008---------Load 0x0007 into location 8 0007 2009---------Load 0x007E into location 9 007E 200A --------Load 0x0059 into location A 0059 2004--------Clear location 4 (Sum is initialized to 0) 0000 2003---------Set array size to 6 0006 2002---------Initialize IX to 5 0005 3000---------Move array index into A (Location 0x212) 0003 5221---------Jump to location 0x221 (halt) if A = 0 2001 FFFF ----------Load B with -1 0000 ---------Subtract 1 from A by adding -1 to it 3003 ---------Move A into location 3 0000 3000 ---------Move running sum into A 0004 E001 ---------Move the next element in the array into B 0000 ---------Add A to B (Sum = Sum = Array[i]) 3004 ---------Save the sum back to location 4 0000 4212 ---------Jump back to location 212 to repeat 7000--------- Halt (location 0x221).
Type 
 0 to enter a program
 1 to display registers
 2 to display memory: 0
         
Enter your program's starting address ( >= 2) as a 3-digit hex number: 200
Enter 0 to type in your program or 1 to read it from a file: 1
Enter the file name: sumnewindex.vesp
Enter 0 to continue, 1 to save your program into a file: 0
         
Here is your program: 
         
Location 0200: 2005
Location 0201: 000F
Location 0202: 2006
Location 0203: 0017
Location 0204: 2007
Location 0205: FFF2
Location 0206: 2008
Location 0207: 0007
Location 0208: 2009
Location 0209: 007E
Location 020A: 200A
Location 020B: 0059
Location 020C: 2004
Location 020D: 0000
Location 020E: 2003
Location 020F: 0006
Location 0210: 2002
Location 0211: 0005
Location 0212: 3000
Location 0213: 0003
Location 0214: 5221
Location 0215: 2001
Location 0216: FFFF
Location 0217: 0000
Location 0218: 3003
Location 0219: 0000
Location 021A: 3000
Location 021B: 0004
Location 021C: E001
Location 021D: 0000
Location 021E: 3004
Location 021F: 0000
Location 0220: 4212
Location 0221: 7000
         
Enter 0 if you wish to execute the program, 1 to step it, 2 to exit to the main menu: 0
Enter 0 for a brief trace 1 for long trace: 1
         
Machine Cycle 1:  PC = 0200, 
FETCH SUBCYCLE
MAR = 0200, IR = 2005, 
Clock cycle = 2
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 2
EXECUTE SUBCYCLE
Clock cycle = 3
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0200, PC = 0202, IR = 2005, reset = 0
add = 0 complement = 0
         
Memory[0005] = 000F
         
Machine Cycle 2:  PC = 0202, 
FETCH SUBCYCLE
MAR = 0202, IR = 2006, 
Clock cycle = 5
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 5
EXECUTE SUBCYCLE
Clock cycle = 6
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0202, PC = 0204, IR = 2006, reset = 0
add = 0 complement = 0
         
Memory[0006] = 0017
         
Machine Cycle 3:  PC = 0204, 
FETCH SUBCYCLE
MAR = 0204, IR = 2007, 
Clock cycle = 8
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 8
EXECUTE SUBCYCLE
Clock cycle = 9
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0204, PC = 0206, IR = 2007, reset = 0
add = 0 complement = 0
         
Memory[0007] = FFF2
         
Machine Cycle 4:  PC = 0206, 
FETCH SUBCYCLE
MAR = 0206, IR = 2008, 
Clock cycle = B
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = B
EXECUTE SUBCYCLE
Clock cycle = C
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0206, PC = 0208, IR = 2008, reset = 0
add = 0 complement = 0
         
Memory[0008] = 0007
         
Machine Cycle 5:  PC = 0208, 
FETCH SUBCYCLE
MAR = 0208, IR = 2009, 
Clock cycle = E
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = E
EXECUTE SUBCYCLE
Clock cycle = F
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0208, PC = 020A, IR = 2009, reset = 0
add = 0 complement = 0
         
Memory[0009] = 007E
         
Machine Cycle 6:  PC = 020A, 
FETCH SUBCYCLE
MAR = 020A, IR = 200A, 
Clock cycle = 11
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 11
EXECUTE SUBCYCLE
Clock cycle = 12
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 020A, PC = 020C, IR = 200A, reset = 0
add = 0 complement = 0
         
Memory[000A] = 0059
         
Machine Cycle 7:  PC = 020C, 
FETCH SUBCYCLE
MAR = 020C, IR = 2004, 
Clock cycle = 14
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 14
EXECUTE SUBCYCLE
Clock cycle = 15
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 020C, PC = 020E, IR = 2004, reset = 0
add = 0 complement = 0
         
Memory[0004] = 0000
         
Machine Cycle 8:  PC = 020E, 
FETCH SUBCYCLE
MAR = 020E, IR = 2003, 
Clock cycle = 17
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 17
EXECUTE SUBCYCLE
Clock cycle = 18
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 020E, PC = 0210, IR = 2003, reset = 0
add = 0 complement = 0
         
Memory[0003] = 0006
         
Machine Cycle 9:  PC = 0210, 
FETCH SUBCYCLE
MAR = 0210, IR = 2002, 
Clock cycle = 1A
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 1A
EXECUTE SUBCYCLE
Clock cycle = 1B
         
A = 0000, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0210, PC = 0212, IR = 2002, reset = 0
add = 0 complement = 0
         
Memory[0002] = 0005
         
Machine Cycle A:  PC = 0212, 
FETCH SUBCYCLE
MAR = 0212, IR = 3000, 
Clock cycle = 1D
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 1D
EXECUTE SUBCYCLE
Clock cycle = 1F
         
A = 0006, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0212, PC = 0214, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0006
         
Machine Cycle B:  PC = 0214, 
FETCH SUBCYCLE
MAR = 0214, IR = 5221, 
Clock cycle = 21
DECODE SUBCYCLE
Decoded instruction is: JEZ
Clock cycle = 21
EXECUTE SUBCYCLE
Clock cycle = 22
         
A = 0006, B = 0000, Z = 0, S = 0, C = 0, F = 0
MAR = 0214, PC = 0215, IR = 5221, reset = 0
add = 0 complement = 0
         
Machine Cycle C:  PC = 0215, 
FETCH SUBCYCLE
MAR = 0215, IR = 2001, 
Clock cycle = 24
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 24
EXECUTE SUBCYCLE
Clock cycle = 25
         
A = 0006, B = FFFF, Z = 0, S = 0, C = 0, F = 0
MAR = 0215, PC = 0217, IR = 2001, reset = 0
add = 0 complement = 0
         
Memory[0001] = FFFF
         
Machine Cycle D:  PC = 0217, 
FETCH SUBCYCLE
MAR = 0217, IR = 0000, 
Clock cycle = 27
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 27
EXECUTE SUBCYCLE
Clock cycle = 28
         
A = 0005, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0217, PC = 0218, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle E:  PC = 0218, 
FETCH SUBCYCLE
MAR = 0218, IR = 3003, 
Clock cycle = 2A
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 2A
EXECUTE SUBCYCLE
Clock cycle = 2C
         
A = 0005, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0218, PC = 021A, IR = 3003, reset = 0
add = 0 complement = 0
         
Memory[0003] = 0005
         
Machine Cycle F:  PC = 021A, 
FETCH SUBCYCLE
MAR = 021A, IR = 3000, 
Clock cycle = 2E
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 2E
EXECUTE SUBCYCLE
Clock cycle = 30
         
A = 0000, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 021A, PC = 021C, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0000
         
Machine Cycle 10:  PC = 021C, 
FETCH SUBCYCLE
MAR = 021C, IR = E001, 
Clock cycle = 32
DECODE SUBCYCLE
Decoded instruction is: MXP
Clock cycle = 32
EXECUTE SUBCYCLE
Clock cycle = 34
         
A = 0000, B = 000F, Z = 1, S = 0, C = 1, F = 0
MAR = 0005, PC = 021D, IR = E001, reset = 0
add = 0 complement = 0
         
Machine Cycle 11:  PC = 021D, 
FETCH SUBCYCLE
MAR = 021D, IR = 0000, 
Clock cycle = 36
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 36
EXECUTE SUBCYCLE
Clock cycle = 37
         
A = 000F, B = 000F, Z = 0, S = 0, C = 0, F = 0
MAR = 021D, PC = 021E, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 12:  PC = 021E, 
FETCH SUBCYCLE
MAR = 021E, IR = 3004, 
Clock cycle = 39
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 39
EXECUTE SUBCYCLE
Clock cycle = 3B
         
A = 000F, B = 000F, Z = 0, S = 0, C = 0, F = 0
MAR = 021E, PC = 0220, IR = 3004, reset = 0
add = 0 complement = 0
         
Memory[0004] = 000F
         
Machine Cycle 13:  PC = 0220, 
FETCH SUBCYCLE
MAR = 0220, IR = 4212, 
Clock cycle = 3D
DECODE SUBCYCLE
Decoded instruction is: JMP
Clock cycle = 3D
EXECUTE SUBCYCLE
Clock cycle = 3E
         
A = 000F, B = 000F, Z = 0, S = 0, C = 0, F = 0
MAR = 0220, PC = 0212, IR = 4212, reset = 0
add = 0 complement = 0
         
Machine Cycle 14:  PC = 0212, 
FETCH SUBCYCLE
MAR = 0212, IR = 3000, 
Clock cycle = 40
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 40
EXECUTE SUBCYCLE
Clock cycle = 42
         
A = 0005, B = 000F, Z = 0, S = 0, C = 0, F = 0
MAR = 0212, PC = 0214, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0005
         
Machine Cycle 15:  PC = 0214, 
FETCH SUBCYCLE
MAR = 0214, IR = 5221, 
Clock cycle = 44
DECODE SUBCYCLE
Decoded instruction is: JEZ
Clock cycle = 44
EXECUTE SUBCYCLE
Clock cycle = 45
         
A = 0005, B = 000F, Z = 0, S = 0, C = 0, F = 0
MAR = 0214, PC = 0215, IR = 5221, reset = 0
add = 0 complement = 0
         
Machine Cycle 16:  PC = 0215, 
FETCH SUBCYCLE
MAR = 0215, IR = 2001, 
Clock cycle = 47
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 47
EXECUTE SUBCYCLE
Clock cycle = 48
         
A = 0005, B = FFFF, Z = 0, S = 0, C = 0, F = 0
MAR = 0215, PC = 0217, IR = 2001, reset = 0
add = 0 complement = 0
         
Memory[0001] = FFFF
         
Machine Cycle 17:  PC = 0217, 
FETCH SUBCYCLE
MAR = 0217, IR = 0000, 
Clock cycle = 4A
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 4A
EXECUTE SUBCYCLE
Clock cycle = 4B
         
A = 0004, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0217, PC = 0218, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 18:  PC = 0218, 
FETCH SUBCYCLE
MAR = 0218, IR = 3003, 
Clock cycle = 4D
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 4D
EXECUTE SUBCYCLE
Clock cycle = 4F
         
A = 0004, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0218, PC = 021A, IR = 3003, reset = 0
add = 0 complement = 0
         
Memory[0003] = 0004
         
Machine Cycle 19:  PC = 021A, 
FETCH SUBCYCLE
MAR = 021A, IR = 3000, 
Clock cycle = 51
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 51
EXECUTE SUBCYCLE
Clock cycle = 53
         
A = 000F, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 021A, PC = 021C, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 000F
         
Machine Cycle 1A:  PC = 021C, 
FETCH SUBCYCLE
MAR = 021C, IR = E001, 
Clock cycle = 55
DECODE SUBCYCLE
Decoded instruction is: MXP
Clock cycle = 55
EXECUTE SUBCYCLE
Clock cycle = 57
         
A = 000F, B = 0017, Z = 0, S = 0, C = 1, F = 0
MAR = 0006, PC = 021D, IR = E001, reset = 0
add = 0 complement = 0
         
Machine Cycle 1B:  PC = 021D, 
FETCH SUBCYCLE
MAR = 021D, IR = 0000, 
Clock cycle = 59
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 59
EXECUTE SUBCYCLE
Clock cycle = 5A
         
A = 0026, B = 0017, Z = 0, S = 0, C = 0, F = 0
MAR = 021D, PC = 021E, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 1C:  PC = 021E, 
FETCH SUBCYCLE
MAR = 021E, IR = 3004, 
Clock cycle = 5C
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 5C
EXECUTE SUBCYCLE
Clock cycle = 5E
         
A = 0026, B = 0017, Z = 0, S = 0, C = 0, F = 0
MAR = 021E, PC = 0220, IR = 3004, reset = 0
add = 0 complement = 0
         
Memory[0004] = 0026
         
Machine Cycle 1D:  PC = 0220, 
FETCH SUBCYCLE
MAR = 0220, IR = 4212, 
Clock cycle = 60
DECODE SUBCYCLE
Decoded instruction is: JMP
Clock cycle = 60
EXECUTE SUBCYCLE
Clock cycle = 61
         
A = 0026, B = 0017, Z = 0, S = 0, C = 0, F = 0
MAR = 0220, PC = 0212, IR = 4212, reset = 0
add = 0 complement = 0
         
Machine Cycle 1E:  PC = 0212, 
FETCH SUBCYCLE
MAR = 0212, IR = 3000, 
Clock cycle = 63
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 63
EXECUTE SUBCYCLE
Clock cycle = 65
         
A = 0004, B = 0017, Z = 0, S = 0, C = 0, F = 0
MAR = 0212, PC = 0214, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0004
         
Machine Cycle 1F:  PC = 0214, 
FETCH SUBCYCLE
MAR = 0214, IR = 5221, 
Clock cycle = 67
DECODE SUBCYCLE
Decoded instruction is: JEZ
Clock cycle = 67
EXECUTE SUBCYCLE
Clock cycle = 68
         
A = 0004, B = 0017, Z = 0, S = 0, C = 0, F = 0
MAR = 0214, PC = 0215, IR = 5221, reset = 0
add = 0 complement = 0
         
Machine Cycle 20:  PC = 0215, 
FETCH SUBCYCLE
MAR = 0215, IR = 2001, 
Clock cycle = 6A
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 6A
EXECUTE SUBCYCLE
Clock cycle = 6B
         
A = 0004, B = FFFF, Z = 0, S = 0, C = 0, F = 0
MAR = 0215, PC = 0217, IR = 2001, reset = 0
add = 0 complement = 0
         
Memory[0001] = FFFF
         
Machine Cycle 21:  PC = 0217, 
FETCH SUBCYCLE
MAR = 0217, IR = 0000, 
Clock cycle = 6D
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 6D
EXECUTE SUBCYCLE
Clock cycle = 6E
         
A = 0003, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0217, PC = 0218, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 22:  PC = 0218, 
FETCH SUBCYCLE
MAR = 0218, IR = 3003, 
Clock cycle = 70
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 70
EXECUTE SUBCYCLE
Clock cycle = 72
         
A = 0003, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0218, PC = 021A, IR = 3003, reset = 0
add = 0 complement = 0
         
Memory[0003] = 0003
         
Machine Cycle 23:  PC = 021A, 
FETCH SUBCYCLE
MAR = 021A, IR = 3000, 
Clock cycle = 74
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 74
EXECUTE SUBCYCLE
Clock cycle = 76
         
A = 0026, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 021A, PC = 021C, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0026
         
Machine Cycle 24:  PC = 021C, 
FETCH SUBCYCLE
MAR = 021C, IR = E001, 
Clock cycle = 78
DECODE SUBCYCLE
Decoded instruction is: MXP
Clock cycle = 78
EXECUTE SUBCYCLE
Clock cycle = 7A
         
A = 0026, B = FFF2, Z = 0, S = 0, C = 1, F = 0
MAR = 0007, PC = 021D, IR = E001, reset = 0
add = 0 complement = 0
         
Machine Cycle 25:  PC = 021D, 
FETCH SUBCYCLE
MAR = 021D, IR = 0000, 
Clock cycle = 7C
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 7C
EXECUTE SUBCYCLE
Clock cycle = 7D
         
A = 0018, B = FFF2, Z = 0, S = 0, C = 1, F = 0
MAR = 021D, PC = 021E, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 26:  PC = 021E, 
FETCH SUBCYCLE
MAR = 021E, IR = 3004, 
Clock cycle = 7F
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 7F
EXECUTE SUBCYCLE
Clock cycle = 81
         
A = 0018, B = FFF2, Z = 0, S = 0, C = 1, F = 0
MAR = 021E, PC = 0220, IR = 3004, reset = 0
add = 0 complement = 0
         
Memory[0004] = 0018
         
Machine Cycle 27:  PC = 0220, 
FETCH SUBCYCLE
MAR = 0220, IR = 4212, 
Clock cycle = 83
DECODE SUBCYCLE
Decoded instruction is: JMP
Clock cycle = 83
EXECUTE SUBCYCLE
Clock cycle = 84
         
A = 0018, B = FFF2, Z = 0, S = 0, C = 1, F = 0
MAR = 0220, PC = 0212, IR = 4212, reset = 0
add = 0 complement = 0
         
Machine Cycle 28:  PC = 0212, 
FETCH SUBCYCLE
MAR = 0212, IR = 3000, 
Clock cycle = 86
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 86
EXECUTE SUBCYCLE
Clock cycle = 88
         
A = 0003, B = FFF2, Z = 0, S = 0, C = 1, F = 0
MAR = 0212, PC = 0214, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0003
         
Machine Cycle 29:  PC = 0214, 
FETCH SUBCYCLE
MAR = 0214, IR = 5221, 
Clock cycle = 8A
DECODE SUBCYCLE
Decoded instruction is: JEZ
Clock cycle = 8A
EXECUTE SUBCYCLE
Clock cycle = 8B
         
A = 0003, B = FFF2, Z = 0, S = 0, C = 1, F = 0
MAR = 0214, PC = 0215, IR = 5221, reset = 0
add = 0 complement = 0
         
Machine Cycle 2A:  PC = 0215, 
FETCH SUBCYCLE
MAR = 0215, IR = 2001, 
Clock cycle = 8D
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = 8D
EXECUTE SUBCYCLE
Clock cycle = 8E
         
A = 0003, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0215, PC = 0217, IR = 2001, reset = 0
add = 0 complement = 0
         
Memory[0001] = FFFF
         
Machine Cycle 2B:  PC = 0217, 
FETCH SUBCYCLE
MAR = 0217, IR = 0000, 
Clock cycle = 90
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 90
EXECUTE SUBCYCLE
Clock cycle = 91
         
A = 0002, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0217, PC = 0218, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 2C:  PC = 0218, 
FETCH SUBCYCLE
MAR = 0218, IR = 3003, 
Clock cycle = 93
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 93
EXECUTE SUBCYCLE
Clock cycle = 95
         
A = 0002, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0218, PC = 021A, IR = 3003, reset = 0
add = 0 complement = 0
         
Memory[0003] = 0002
         
Machine Cycle 2D:  PC = 021A, 
FETCH SUBCYCLE
MAR = 021A, IR = 3000, 
Clock cycle = 97
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = 97
EXECUTE SUBCYCLE
Clock cycle = 99
         
A = 0018, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 021A, PC = 021C, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0018
         
Machine Cycle 2E:  PC = 021C, 
FETCH SUBCYCLE
MAR = 021C, IR = E001, 
Clock cycle = 9B
DECODE SUBCYCLE
Decoded instruction is: MXP
Clock cycle = 9B
EXECUTE SUBCYCLE
Clock cycle = 9D
         
A = 0018, B = 0007, Z = 0, S = 0, C = 1, F = 0
MAR = 0008, PC = 021D, IR = E001, reset = 0
add = 0 complement = 0
         
Machine Cycle 2F:  PC = 021D, 
FETCH SUBCYCLE
MAR = 021D, IR = 0000, 
Clock cycle = 9F
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = 9F
EXECUTE SUBCYCLE
Clock cycle = A0
         
A = 001F, B = 0007, Z = 0, S = 0, C = 0, F = 0
MAR = 021D, PC = 021E, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 30:  PC = 021E, 
FETCH SUBCYCLE
MAR = 021E, IR = 3004, 
Clock cycle = A2
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = A2
EXECUTE SUBCYCLE
Clock cycle = A4
         
A = 001F, B = 0007, Z = 0, S = 0, C = 0, F = 0
MAR = 021E, PC = 0220, IR = 3004, reset = 0
add = 0 complement = 0
         
Memory[0004] = 001F
         
Machine Cycle 31:  PC = 0220, 
FETCH SUBCYCLE
MAR = 0220, IR = 4212, 
Clock cycle = A6
DECODE SUBCYCLE
Decoded instruction is: JMP
Clock cycle = A6
EXECUTE SUBCYCLE
Clock cycle = A7
         
A = 001F, B = 0007, Z = 0, S = 0, C = 0, F = 0
MAR = 0220, PC = 0212, IR = 4212, reset = 0
add = 0 complement = 0
         
Machine Cycle 32:  PC = 0212, 
FETCH SUBCYCLE
MAR = 0212, IR = 3000, 
Clock cycle = A9
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = A9
EXECUTE SUBCYCLE
Clock cycle = AB
         
A = 0002, B = 0007, Z = 0, S = 0, C = 0, F = 0
MAR = 0212, PC = 0214, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0002
         
Machine Cycle 33:  PC = 0214, 
FETCH SUBCYCLE
MAR = 0214, IR = 5221, 
Clock cycle = AD
DECODE SUBCYCLE
Decoded instruction is: JEZ
Clock cycle = AD
EXECUTE SUBCYCLE
Clock cycle = AE
         
A = 0002, B = 0007, Z = 0, S = 0, C = 0, F = 0
MAR = 0214, PC = 0215, IR = 5221, reset = 0
add = 0 complement = 0
         
Machine Cycle 34:  PC = 0215, 
FETCH SUBCYCLE
MAR = 0215, IR = 2001, 
Clock cycle = B0
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = B0
EXECUTE SUBCYCLE
Clock cycle = B1
         
A = 0002, B = FFFF, Z = 0, S = 0, C = 0, F = 0
MAR = 0215, PC = 0217, IR = 2001, reset = 0
add = 0 complement = 0
         
Memory[0001] = FFFF
         
Machine Cycle 35:  PC = 0217, 
FETCH SUBCYCLE
MAR = 0217, IR = 0000, 
Clock cycle = B3
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = B3
EXECUTE SUBCYCLE
Clock cycle = B4
         
A = 0001, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0217, PC = 0218, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 36:  PC = 0218, 
FETCH SUBCYCLE
MAR = 0218, IR = 3003, 
Clock cycle = B6
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = B6
EXECUTE SUBCYCLE
Clock cycle = B8
         
A = 0001, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 0218, PC = 021A, IR = 3003, reset = 0
add = 0 complement = 0
         
Memory[0003] = 0001
         
Machine Cycle 37:  PC = 021A, 
FETCH SUBCYCLE
MAR = 021A, IR = 3000, 
Clock cycle = BA
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = BA
EXECUTE SUBCYCLE
Clock cycle = BC
         
A = 001F, B = FFFF, Z = 0, S = 0, C = 1, F = 0
MAR = 021A, PC = 021C, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 001F
         
Machine Cycle 38:  PC = 021C, 
FETCH SUBCYCLE
MAR = 021C, IR = E001, 
Clock cycle = BE
DECODE SUBCYCLE
Decoded instruction is: MXP
Clock cycle = BE
EXECUTE SUBCYCLE
Clock cycle = C0
         
A = 001F, B = 007E, Z = 0, S = 0, C = 1, F = 0
MAR = 0009, PC = 021D, IR = E001, reset = 0
add = 0 complement = 0
         
Machine Cycle 39:  PC = 021D, 
FETCH SUBCYCLE
MAR = 021D, IR = 0000, 
Clock cycle = C2
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = C2
EXECUTE SUBCYCLE
Clock cycle = C3
         
A = 009D, B = 007E, Z = 0, S = 0, C = 0, F = 0
MAR = 021D, PC = 021E, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 3A:  PC = 021E, 
FETCH SUBCYCLE
MAR = 021E, IR = 3004, 
Clock cycle = C5
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = C5
EXECUTE SUBCYCLE
Clock cycle = C7
         
A = 009D, B = 007E, Z = 0, S = 0, C = 0, F = 0
MAR = 021E, PC = 0220, IR = 3004, reset = 0
add = 0 complement = 0
         
Memory[0004] = 009D
         
Machine Cycle 3B:  PC = 0220, 
FETCH SUBCYCLE
MAR = 0220, IR = 4212, 
Clock cycle = C9
DECODE SUBCYCLE
Decoded instruction is: JMP
Clock cycle = C9
EXECUTE SUBCYCLE
Clock cycle = CA
         
A = 009D, B = 007E, Z = 0, S = 0, C = 0, F = 0
MAR = 0220, PC = 0212, IR = 4212, reset = 0
add = 0 complement = 0
         
Machine Cycle 3C:  PC = 0212, 
FETCH SUBCYCLE
MAR = 0212, IR = 3000, 
Clock cycle = CC
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = CC
EXECUTE SUBCYCLE
Clock cycle = CE
         
A = 0001, B = 007E, Z = 0, S = 0, C = 0, F = 0
MAR = 0212, PC = 0214, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0001
         
Machine Cycle 3D:  PC = 0214, 
FETCH SUBCYCLE
MAR = 0214, IR = 5221, 
Clock cycle = D0
DECODE SUBCYCLE
Decoded instruction is: JEZ
Clock cycle = D0
EXECUTE SUBCYCLE
Clock cycle = D1
         
A = 0001, B = 007E, Z = 0, S = 0, C = 0, F = 0
MAR = 0214, PC = 0215, IR = 5221, reset = 0
add = 0 complement = 0
         
Machine Cycle 3E:  PC = 0215, 
FETCH SUBCYCLE
MAR = 0215, IR = 2001, 
Clock cycle = D3
DECODE SUBCYCLE
Decoded instruction is: LDA
Clock cycle = D3
EXECUTE SUBCYCLE
Clock cycle = D4
         
A = 0001, B = FFFF, Z = 0, S = 0, C = 0, F = 0
MAR = 0215, PC = 0217, IR = 2001, reset = 0
add = 0 complement = 0
         
Memory[0001] = FFFF
         
Machine Cycle 3F:  PC = 0217, 
FETCH SUBCYCLE
MAR = 0217, IR = 0000, 
Clock cycle = D6
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = D6
EXECUTE SUBCYCLE
Clock cycle = D7
         
A = 0000, B = FFFF, Z = 1, S = 0, C = 0, F = 0
MAR = 0217, PC = 0218, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 40:  PC = 0218, 
FETCH SUBCYCLE
MAR = 0218, IR = 3003, 
Clock cycle = D9
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = D9
EXECUTE SUBCYCLE
Clock cycle = DB
         
A = 0000, B = FFFF, Z = 1, S = 0, C = 0, F = 0
MAR = 0218, PC = 021A, IR = 3003, reset = 0
add = 0 complement = 0
         
Memory[0003] = 0000
         
Machine Cycle 41:  PC = 021A, 
FETCH SUBCYCLE
MAR = 021A, IR = 3000, 
Clock cycle = DD
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = DD
EXECUTE SUBCYCLE
Clock cycle = DF
         
A = 009D, B = FFFF, Z = 1, S = 0, C = 0, F = 0
MAR = 021A, PC = 021C, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 009D
         
Machine Cycle 42:  PC = 021C, 
FETCH SUBCYCLE
MAR = 021C, IR = E001, 
Clock cycle = E1
DECODE SUBCYCLE
Decoded instruction is: MXP
Clock cycle = E1
EXECUTE SUBCYCLE
Clock cycle = E3
         
A = 009D, B = 0059, Z = 0, S = 0, C = 0, F = 0
MAR = 000A, PC = 021D, IR = E001, reset = 0
add = 0 complement = 0
         
Machine Cycle 43:  PC = 021D, 
FETCH SUBCYCLE
MAR = 021D, IR = 0000, 
Clock cycle = E5
DECODE SUBCYCLE
Decoded instruction is: ADD
Clock cycle = E5
EXECUTE SUBCYCLE
Clock cycle = E6
         
A = 00F6, B = 0059, Z = 0, S = 0, C = 0, F = 0
MAR = 021D, PC = 021E, IR = 0000, reset = 0
add = 1 complement = 0
         
Machine Cycle 44:  PC = 021E, 
FETCH SUBCYCLE
MAR = 021E, IR = 3004, 
Clock cycle = E8
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = E8
EXECUTE SUBCYCLE
Clock cycle = EA
         
A = 00F6, B = 0059, Z = 0, S = 0, C = 0, F = 0
MAR = 021E, PC = 0220, IR = 3004, reset = 0
add = 0 complement = 0
         
Memory[0004] = 00F6
         
Machine Cycle 45:  PC = 0220, 
FETCH SUBCYCLE
MAR = 0220, IR = 4212, 
Clock cycle = EC
DECODE SUBCYCLE
Decoded instruction is: JMP
Clock cycle = EC
EXECUTE SUBCYCLE
Clock cycle = ED
         
A = 00F6, B = 0059, Z = 0, S = 0, C = 0, F = 0
MAR = 0220, PC = 0212, IR = 4212, reset = 0
add = 0 complement = 0
         
Machine Cycle 46:  PC = 0212, 
FETCH SUBCYCLE
MAR = 0212, IR = 3000, 
Clock cycle = EF
DECODE SUBCYCLE
Decoded instruction is: MOV
Clock cycle = EF
EXECUTE SUBCYCLE
Clock cycle = F1
         
A = 0000, B = 0059, Z = 0, S = 0, C = 0, F = 0
MAR = 0212, PC = 0214, IR = 3000, reset = 0
add = 0 complement = 0
         
Memory[0000] = 0000
         
Machine Cycle 47:  PC = 0214, 
FETCH SUBCYCLE
MAR = 0214, IR = 5221, 
Clock cycle = F3
DECODE SUBCYCLE
Decoded instruction is: JEZ
Clock cycle = F3
EXECUTE SUBCYCLE
Clock cycle = F4
         
A = 0000, B = 0059, Z = 0, S = 0, C = 0, F = 0
MAR = 0214, PC = 0221, IR = 5221, reset = 0
add = 0 complement = 0
         
Machine Cycle 48:  PC = 0221, 
FETCH SUBCYCLE
MAR = 0221, IR = 7000, 
Clock cycle = F6
DECODE SUBCYCLE
Decoded instruction is: HLT
Clock cycle = F6
EXECUTE SUBCYCLE
Clock cycle = F7
         
A = 0000, B = 0059, Z = 0, S = 0, C = 0, F = 0
MAR = 0221, PC = 0222, IR = 7000, reset = 1
add = 0 complement = 0
         
The number of instructions executed  = 72
The number of clock cycles used = 247
         
Type 
 0 to enter a program
 1 to display registers
 2 to display memory: 2
         
Enter the first address (3 hex digits): 002
Enter the last address: (3 hex digits): 004
Location 0002 : 000B
Location 0003 : 0000
Location 0004 : 00F6
         
Type 
 0 to enter a program
 1 to display registers
2 to display memory: 

Return to lecture notes