Cho đoạn mã Assembler sau:
ORG 0000H CLR C
MOV R1, #10
MOV A, #100
LAP: SUBB A, #2
DJNZ R1, LAP
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 một vòng lặp để trừ giá trị từ thanh ghi A.
Ban đầu:
- A = 100 (decimal)
- R1 = 10 (decimal)
Vòng lặp LAP:
- SUBB A, #2: Trừ 2 từ A.
- DJNZ R1, LAP: Giảm R1 đi 1 và nhảy về LAP nếu R1 khác 0.
Vòng lặp này sẽ thực hiện 10 lần. Mỗi lần, A sẽ giảm đi 2. Vậy tổng cộng A sẽ giảm đi 2 * 10 = 20.
Giá trị cuối cùng của A là: 100 - 20 = 80 (decimal).
Đổi 80 (decimal) sang hệ Hexadecimal ta có 50H
Vậy kết quả của thanh ghi A là 50H