Cho đoạn mã Assembler sau:MOV A, #0FFHMOV R0, #0F0HXRL A, R0Kết quả của thanh ghi R0 là:
Trả lời:
Đáp án đúng: A
Đoạn mã Assembler thực hiện các bước sau:
1. **MOV A, #0FFH**: Gán giá trị FFH (255 trong hệ thập phân) vào thanh ghi A.
2. **MOV R0, #0F0H**: Gán giá trị F0H (240 trong hệ thập phân) vào thanh ghi R0.
3. **XRL A, R0**: Thực hiện phép XOR (Exclusive OR) giữa nội dung của thanh ghi A và thanh ghi R0, kết quả được lưu vào thanh ghi A.
Phép XOR hoạt động như sau:
* Nếu hai bit khác nhau, kết quả là 1.
* Nếu hai bit giống nhau, kết quả là 0.
Trong trường hợp này:
A = 0FFH = 1111 1111 (trong hệ nhị phân)
R0 = 0F0H = 1111 0000 (trong hệ nhị phân)
Thực hiện phép XOR:
1111 1111
XOR 1111 0000
= 0000 1111
Kết quả là 0000 1111, tương đương với 0FH trong hệ thập lục phân.
Tuy nhiên, câu hỏi hỏi kết quả của thanh ghi R0. Lệnh XOR A, R0 chỉ thay đổi giá trị của thanh ghi A, còn thanh ghi R0 không bị thay đổi. Do đó, giá trị của thanh ghi R0 vẫn là F0H.





