[Assembly] - What is the value of the program counter in | SheCodes

[Assembly] - What is the value of the program counter in Assembly?

Learn what is the value in the program counter when executing the third INP instruction in assembly language.

👩‍💻 Technical question

Asked 2 years ago in Assembly by PRINCESS LILY

INP, STA VAL1, INP, STA VAL2, INP, STA VAL3, SUB VAL2, BRP CHECK1, LDA VAL2, STA VAL3, CHECK1 LDA VAL3, SUB VAL1, BRP CHECK2, LDA VAL1, STA VAL3, CHECK2 LDA VAL3, OUT, HLT, VAL1 DAT, VAL2 DAT, VAL3 DAT. What will be the value in the program counter when the third INP instruction is executed?

🤖 SheCodes Athena says:

Answered in 3.36 seconds

The program counter is a register in a computer processor that contains the address (location) of the instruction being executed.

In this case, each instruction occupies three memory locations, and we have nine memory locations in total: three for the instructions and six for the data. Therefore, the program counter (PC) will start at 0, and the third INP instruction will be stored at location 6.

Since each instruction uses three memory locations, the program counter will be incremented by 3 each time an instruction is executed. Thus, the program counter will be at 6 when the third INP instruction is executed.

Therefore, the value of the program counter will be 6.

assembly
Copy code
INP STA VAL1 INP STA VAL2 INP ; the third INP - this instruction will be stored at memory location 6 STA VAL3 SUB VAL2 BRP CHECK1 LDA VAL2 STA VAL3 CHECK1 LDA VAL3 SUB VAL1 BRP CHECK2 LDA VAL1 STA VAL3 CHECK2 LDA VAL3 OUT HLT VAL1 DAT VAL2 DAT VAL3 DAT