Cho đoạn mã Assembler sau:
ORG 0000H
MOV A, #3BH
MOV R0, #0B3H
ADD A, R0
CJNE A, #EEH, NHAN
MOV 30H, #23
SJMP KETTHUC
NHAN: MOV 30H, #32
KETTHUC: END.
Kết quả ô nhớ có địa chỉ 30H là:
Trả lời:
Đáp án đúng: C
Đầu tiên, A được gán giá trị 3BH (59 theo hệ thập phân). Sau đó, R0 được gán giá trị 0B3H (179 theo hệ thập phân). Tiếp theo, A được cộng với R0, tức là A = 3BH + 0B3H = 59 + 179 = 238 (theo hệ thập phân), tương đương với EEH.
Câu lệnh CJNE A, #EEH, NHAN so sánh A với EEH. Vì A = EEH, điều kiện này không đúng (A không khác EEH), do đó chương trình không nhảy đến NHAN mà tiếp tục thực hiện lệnh MOV 30H, #23. Vì vậy, ô nhớ 30H sẽ chứa giá trị 23H.