Cho đoạn mã Assembler sau:MOV R0, #20HMOV A, #36HMOV 20H, #75HXCHD A, @R0Kết quả của thanh ghi A là:
Trả lời:
Đáp án đúng: B
Đoạn mã Assembler thực hiện các bước sau:
1. `MOV R0, #20H`: Gán giá trị 20H cho thanh ghi R0. R0 sẽ đóng vai trò là con trỏ địa chỉ.
2. `MOV A, #36H`: Gán giá trị 36H cho thanh ghi A.
3. `MOV 20H, #75H`: Gán giá trị 75H cho ô nhớ có địa chỉ 20H.
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ó địa chỉ được trỏ bởi R0 (tức là ô nhớ 20H).
Ban đầu:
- A = 36H (0011 0110)
- Ô nhớ 20H = 75H (0111 0101)
Sau khi thực hiện `XCHD A, @R0`:
- Nửa thấp của A (0110) được trao đổi với nửa thấp của ô nhớ 20H (0101).
- A = 35H (0011 0101)
- Ô nhớ 20H = 76H (0111 0110)
Vậy, kết quả cuối cùng của thanh ghi A là 35H.





