JavaScript is required

Cho đoạn mã Assembler sau:MOV A, #0C3HMOV 20H, #77HADD A, 20HADDC A, 20HKết quả của ô nhớ có địa chỉ 20H là:

A.

C3H

B.

77H

C.

20H

D.

B2H

Trả lời:

Đáp án đúng: B


Đoạn mã Assembler thực hiện các phép toán trên thanh ghi A và ô nhớ 20H. Ta cần theo dõi sự thay đổi giá trị của ô nhớ 20H. - MOV A, #0C3H: Gán giá trị C3H (195 trong hệ thập phân) vào thanh ghi A. - MOV 20H, #77H: Gán giá trị 77H (119 trong hệ thập phân) vào ô nhớ 20H. Như vậy, ô nhớ 20H đang chứa giá trị 77H. - ADD A, 20H: Cộng giá trị của ô nhớ 20H (77H) vào thanh ghi A. A = A + 20H = C3H + 77H = 195 + 119 = 314 = 13AH (trong hệ thập lục phân). Kết quả lưu vào thanh ghi A, A = 13AH. - ADDC A, 20H: Cộng giá trị của ô nhớ 20H (77H) vào thanh ghi A, cộng thêm cờ nhớ (Carry flag). Vì phép cộng trước (ADD A, 20H) không tạo ra cờ nhớ, nên cờ nhớ bằng 0. A = A + 20H + Carry = 13AH + 77H + 0 = 314 + 119 + 0 = 433 = 1B1H (trong hệ thập lục phân). Kết quả lưu vào thanh ghi A, A = 1B1H. Giá trị của ô nhớ 20H không thay đổi trong quá trình thực hiện đoạn mã, nó vẫn giữ giá trị ban đầu là 77H.

Câu hỏi liên quan