JavaScript is required

Khai báo nào sau đây là sai?

A.

Mov ds,@data

B.

Mov ax,sum

C.

Mov sum,dx

D.

Không có khai báo nào sai

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ạn DS. 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ến sum vào thanh ghi AX.
  • C. Mov sum,dx: Lệnh này đúng. Di chuyển nội dung của thanh ghi DX vào biến sum.
  • 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.

Câu hỏi liên quan