Lệnh nào trong số các lệnh sau đây là lệnh sai:
Trả lời:
Đáp án đúng: C
Trong kiến trúc tập lệnh của vi điều khiển 8051, lệnh MOV dùng để di chuyển dữ liệu giữa các thanh ghi, bộ nhớ trong và bộ nhớ ngoài. Tuy nhiên, có một số quy tắc về toán hạng mà lệnh MOV phải tuân thủ.
Phân tích các phương án:
- A. MOV A, #0FFH: Lệnh này hợp lệ. Nó di chuyển giá trị thập lục phân 0FFH (tương đương 255 theo hệ thập phân) vào thanh ghi A.
- B. MOV 255, A: Lệnh này hợp lệ nếu 255 là một địa chỉ ô nhớ trực tiếp (direct addressing). Nó di chuyển nội dung của thanh ghi A vào ô nhớ có địa chỉ 255.
- C. MOV #255, A: Lệnh này không hợp lệ. Trong 8051, không thể di chuyển trực tiếp nội dung của thanh ghi A vào một giá trị hằng số (#255). Toán hạng đích của lệnh MOV không thể là một giá trị tức thời (immediate value).
- D. MOV A, #255: Lệnh này hợp lệ. Nó di chuyển giá trị 255 vào thanh ghi A.
Do đó, lệnh sai là C.





