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à:
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.