JavaScript is required

Cho đoạn mã Assembler sau:

ORG 0000H

CLR C

MOV A, #0C0H

MOV R1, #40H

MOV 40H, #15H

SUBB A, @R1

END.

Kết quả của thanh ghi A là:

A.

F0H

B.

ABH

C.

55H

D.

80H

Trả lời:

Đáp án đúng: B


Đoạn mã Assembler thực hiện các bước sau: 1. `CLR C`: Xóa cờ nhớ (Carry flag) về 0. C = 0. 2. `MOV A, #0C0H`: Gán giá trị 0xC0 (192 trong hệ thập phân) vào thanh ghi A. A = 0xC0. 3. `MOV R1, #40H`: Gán địa chỉ 40H vào thanh ghi R1. R1 trỏ đến địa chỉ 40H. 4. `MOV 40H, #15H`: Gán giá trị 0x15 (21 trong hệ thập phân) vào ô nhớ có địa chỉ 40H. Bộ nhớ (40H) = 0x15. 5. `SUBB A, @R1`: Thực hiện phép trừ có nhớ (subtract with borrow) giữa thanh ghi A và giá trị được trỏ bởi R1 (tức là giá trị tại địa chỉ 40H). Vì C = 0, phép toán trở thành A = A - (40H) - C = 0xC0 - 0x15 - 0 = 0xC0 - 0x15 = 0xAB. Vậy, kết quả cuối cùng của thanh ghi A là 0xAB.

Câu hỏi liên quan