JavaScript is required

Cho đoạn mã Assembler sau:

ORG 0000H

MOV A, #0B6H

ADD A, #0CDH

RRC A

END.

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

A.

C1H

B.

83H

C.

9BH

D.

07H

Trả lời:

Đáp án đúng: A


Đầu tiên, ta có A = 0xB6 (10110110B). Tiếp theo, ta thực hiện phép cộng A = A + 0xCD = 0xB6 + 0xCD = 0x183. Vì A là thanh ghi 8 bit, kết quả chỉ giữ lại 8 bit thấp, vậy A = 0x83 (10000011B) và cờ Carry (CY) được set (CY = 1) do có tràn. Cuối cùng, ta thực hiện lệnh RRC A (Rotate Right through Carry). Lệnh này dịch bit của A sang phải 1 vị trí, bit cuối cùng (LSB) sẽ được chuyển vào cờ Carry và giá trị của cờ Carry trước đó sẽ được chuyển vào bit đầu tiên (MSB) của A. Vậy, A = 11000001B = 0xC1 và CY = 1. Vậy, kết quả cuối cùng của thanh ghi A là 0xC1.

Câu hỏi liên quan