Cho đoạn mã Assembler sau:
ORG 0000H
MOV R0, #30H
MOV A, #7BH
MOV 30H, #4CH
XCHD A, @R0
END.
Kết quả của thanh ghi A là:
Trả lời:
Đáp án đúng: D
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV R0, #30H`: Gán giá trị 30H cho thanh ghi R0. R0 sẽ trỏ đến địa chỉ bộ nhớ 30H.
2. `MOV A, #7BH`: Gán giá trị 7BH cho thanh ghi A.
3. `MOV 30H, #4CH`: Gán giá trị 4CH cho ô nhớ có địa chỉ 30H.
4. `XCHD A, @R0`: Lệnh này trao đổi nửa thấp (4 bit thấp) của thanh ghi A với nửa thấp của ô nhớ được trỏ bởi R0 (tức ô nhớ 30H).
* Ban đầu: A = 7BH, (30H) = 4CH
* Sau khi thực hiện XCHD: Nửa thấp của A (B) sẽ được trao đổi với nửa thấp của (30H) (C). Vậy A sẽ trở thành 7CH, và (30H) sẽ trở thành 4BH.
Vậy, kết quả cuối cùng của thanh ghi A là 7CH.