Cho đoạn mã Assembler sau:
ORG 0000H
MOV R0, #30H
MOV 31H, #4BH
MOV A, R0
INC A
MOV R0, A
ADD A, @R0
END.
Kết quả của thanh ghi A là:
Trả lời:
Đáp án đúng: C
Đoạn mã Assembly thực hiện các bước sau:
1. `MOV R0, #30H`: Gán giá trị 30H cho thanh ghi R0. R0 chứa địa chỉ 30H.
2. `MOV 31H, #4BH`: Gán giá trị 4BH vào ô nhớ có địa chỉ 31H.
3. `MOV A, R0`: Gán giá trị của R0 (30H) vào thanh ghi A. Lúc này A = 30H.
4. `INC A`: Tăng giá trị của A lên 1. Lúc này A = 31H.
5. `MOV R0, A`: Gán giá trị của A (31H) vào thanh ghi R0. R0 chứa địa chỉ 31H.
6. `ADD A, @R0`: Cộng giá trị của ô nhớ có địa chỉ được chứa trong R0 (tức là ô nhớ 31H) vào thanh ghi A. Giá trị của ô nhớ 31H là 4BH. Vậy A = A + (31H) = 31H + 4BH = 7CH.
Vậy, kết quả cuối cùng của thanh ghi A là 7CH.