JavaScript is required

Để xoá thanh ghi CX về 0, lệnh nào sau đây là đúng?

A.
OR CX,0
B.
CMP CX,0
C.
MOV CX,[0]
D.
XOR CX,CX
Trả lời:

Đáp án đúng: D


Đáp án đúng là D. XOR CX,CX Giải thích: * **A. OR CX, 0**: Lệnh OR thực hiện phép OR bitwise giữa thanh ghi CX và 0. Kết quả sẽ được lưu vào CX. Tuy nhiên, phép OR với 0 sẽ không thay đổi giá trị ban đầu của CX. Do đó, lệnh này không xoá CX về 0. * **B. CMP CX, 0**: Lệnh CMP (so sánh) so sánh giá trị của CX với 0, nhưng không thay đổi giá trị của CX. Lệnh này chỉ thiết lập các cờ trạng thái (status flags) dựa trên kết quả so sánh (ví dụ: cờ Zero nếu CX bằng 0). * **C. MOV CX, [0]**: Lệnh MOV này cố gắng di chuyển giá trị từ địa chỉ bộ nhớ 0 vào thanh ghi CX. Hành động này có thể dẫn đến lỗi nếu địa chỉ bộ nhớ 0 không hợp lệ hoặc không được phép truy cập. Ngay cả khi thành công, nó sẽ di chuyển giá trị từ địa chỉ 0 vào CX chứ không phải gán CX bằng 0. * **D. XOR CX, CX**: Lệnh XOR (Exclusive OR) thực hiện phép XOR bitwise giữa thanh ghi CX với chính nó. Phép XOR của một số với chính nó luôn bằng 0. Do đó, lệnh này sẽ gán giá trị 0 cho thanh ghi CX một cách hiệu quả và an toàn. Ví dụ: Nếu CX đang chứa giá trị 10 (trong hệ nhị phân là 1010), thì XOR CX, CX sẽ thực hiện 1010 XOR 1010, kết quả là 0000, và CX sẽ được gán giá trị 0.

Câu hỏi liên quan