Cho đoạn mã Assembler sau:
ORG 0000H
MOV 40H, #0FH
MOV 41H, #3BH
MOV R1, #40H
INC R1
MOV A, 40H
XRL A, @R1
END.
Kế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 40H, #0FH`: Gán giá trị 0FH (tức 15 trong hệ thập phân) vào ô nhớ có địa chỉ 40H.
2. `MOV 41H, #3BH`: Gán giá trị 3BH (tức 59 trong hệ thập phân) vào ô nhớ có địa chỉ 41H.
3. `MOV R1, #40H`: Gán giá trị 40H vào thanh ghi R1. R1 lúc này chứa địa chỉ 40H.
4. `INC R1`: Tăng giá trị của R1 lên 1. R1 bây giờ chứa địa chỉ 41H.
5. `MOV A, 40H`: Gán giá trị của ô nhớ có địa chỉ 40H (tức 0FH) vào thanh ghi A.
6. `XRL A, @R1`: Thực hiện phép XOR giữa giá trị hiện tại của thanh ghi A (0FH) và giá trị của ô nhớ có địa chỉ được chứa trong R1 (tức địa chỉ 41H, giá trị 3BH). Phép XOR (Exclusive OR) hoạt động như sau:
- 0 XOR 0 = 0
- 0 XOR 1 = 1
- 1 XOR 0 = 1
- 1 XOR 1 = 0
Tính XOR giữa 0FH và 3BH:
- 0FH = 0000 1111 (binary)
- 3BH = 0011 1011 (binary)
- A = 0011 0100 (binary) = 34H
Vậy, kết quả cuối cùng của thanh ghi A là 34H.





