This is the program we load in (assume any non-programmed memory cell = 000):
000 001 A
001 000 B
002 100 X
003 004 PC
004 007 ADD A IND/INDX
005 376
006 000
.....
020 125
.....
225 030
.....
376 020
We press START:
The execution starts at 004
The operation is to ADD a value to the A register using indirect/Indexed addressing
The next memory address contains a pointer to the memory cell containing the address of another memory cell - 376
The contents of that memory cell are added to the X register to derive the address of the memory cell containing the value of the operand - 020
X register = 225
The operand at 225 = 030
The operand is added to the contents of A register - 001
The next instruction is a halt
At the end of the program the A register then contains 031
Considering that each bit of each byte of memory requires a clock pulse, how many shifts and how long would it take to execute this program?