Trả lời:
Đáp án đúng: A
Trong ngữ cảnh hợp ngữ (Assembly), lệnh MOV
được sử dụng để di chuyển dữ liệu giữa các thanh ghi, giữa thanh ghi và bộ nhớ, hoặc giữa một giá trị trực tiếp và thanh ghi/bộ nhớ. Tuy nhiên, có một số quy tắc cần tuân thủ:
- Không thể di chuyển trực tiếp dữ liệu từ bộ nhớ sang bộ nhớ bằng lệnh
MOV
. - Khi di chuyển giá trị trực tiếp vào thanh ghi đoạn (segment register) như
DS
, cần phải thông qua một thanh ghi trung gian (thường làAX
).
Phân tích các lựa chọn:
- A.
Mov ds,@data
: Lệnh này sai. Không thể gán trực tiếp địa chỉ của@data
(một vùng nhớ) cho thanh ghi đoạnDS
. Cần phải nạp địa chỉ này vào một thanh ghi đa năng (ví dụ: AX) rồi mới chuyển vào DS. - B.
Mov ax,sum
: Lệnh này đúng. Di chuyển nội dung của biếnsum
vào thanh ghiAX
. - C.
Mov sum,dx
: Lệnh này đúng. Di chuyển nội dung của thanh ghiDX
vào biếnsum
. - D.
Không có khai báo nào sai
: Lựa chọn này sai vì đã xác định được lựa chọn A là sai.
Vậy, khai báo sai là A.