Sau khi thực hiện đoạn chương trình sau, thanh ghi BX có giá trị bằng bao nhiêu? XOR AX, AX – XOR BX, BX – MOV AX, 5857H – MOV BX, 58A8H XOR AX, BX
Trả lời:
Đáp án đúng: C
Đoạn chương trình thực hiện các bước sau:
1. `XOR AX, AX`: Gán AX = 0
2. `XOR BX, BX`: Gán BX = 0
3. `MOV AX, 5857H`: Gán AX = 5857H
4. `MOV BX, 58A8H`: Gán BX = 58A8H
5. `XOR AX, BX`: AX = AX XOR BX = 5857H XOR 58A8H
Phép XOR giữa 5857H và 58A8H được thực hiện như sau:
5857H = 0101 1000 0101 0111
58A8H = 0101 1000 1010 1000
---------------------------- XOR
0000 0000 1111 1111 = 00FFH
Vậy AX = 00FFH, tuy nhiên câu hỏi hỏi giá trị của BX sau khi thực hiện đoạn chương trình. BX vẫn giữ giá trị 58A8H. Vì không có đáp án đúng nên ta sẽ giải thích tại sao các đáp án khác sai
- A. 57h: Sai vì đây không phải là giá trị cuối cùng của BX.
- B. FFh: Sai vì đây là kết quả của AX sau khi XOR với BX, không phải giá trị của BX.
- C. 5858h: Sai vì đây không phải là giá trị cuối cùng của BX.
- D. 58A8h: **Đúng**. Sau lệnh MOV BX, 58A8H thì giá trị của BX là 58A8H. Các lệnh XOR không làm thay đổi giá trị của BX.





