JavaScript is required

Cho các dữ liệu được khai báo như sau:

Data

A DW 1234h

B LABEL BYTE

DW 5678h

C LABEL WORD

C1 DB 9Ah

C2 DB 0BCh

Hỏi các lệnh nào sau đây không hợp lệ?

A.

MOV AH,B

B.

MOV CX,C

C.

MOV AX,B

D.

MOV BX,WORD PTR B

Trả lời:

Đáp án đúng: C


Câu hỏi này kiểm tra kiến thức về cách sử dụng các lệnh MOV trong hợp ngữ (assembly), đặc biệt là cách di chuyển dữ liệu giữa các thanh ghi và các biến nhớ, cũng như cách sử dụng các từ khóa như LABEL và PTR. Chúng ta cần xem xét kích thước dữ liệu và tính hợp lệ của các toán hạng. * **Phương án A: MOV AH, B** * `B` được định nghĩa là `LABEL BYTE`, tức là một nhãn (label) chỉ đến một vị trí nhớ có kích thước byte. `AH` là một thanh ghi 8-bit (byte). Lệnh này hợp lệ vì nó di chuyển một byte dữ liệu từ vị trí nhớ được gán nhãn `B` vào thanh ghi `AH`. * **Phương án B: MOV CX, C** * `C` được định nghĩa là `LABEL WORD`, tức là một nhãn chỉ đến một vị trí nhớ có kích thước word (2 byte). `CX` là một thanh ghi 16-bit (word). Lệnh này hợp lệ vì nó di chuyển một word dữ liệu từ vị trí nhớ được gán nhãn `C` vào thanh ghi `CX`. * **Phương án C: MOV AX, B** * `B` được định nghĩa là `LABEL BYTE`, tức là một nhãn chỉ đến một vị trí nhớ có kích thước byte. `AX` là một thanh ghi 16-bit (word). Lệnh này không hợp lệ vì bạn đang cố gắng di chuyển một byte vào một thanh ghi word. Kích thước không khớp. * **Phương án D: MOV BX, WORD PTR B** * `B` được định nghĩa là `LABEL BYTE`. `WORD PTR B` chỉ định rằng chúng ta muốn lấy một word (2 byte) từ vị trí nhớ được gán nhãn `B`. `BX` là một thanh ghi 16-bit (word). Câu lệnh này là hợp lệ, mặc dù `B` vốn là byte, `WORD PTR` sẽ lấy 2 byte từ vị trí `B` và lưu vào `BX`. Vậy, lệnh **MOV AX, B** là không hợp lệ do kích thước dữ liệu không tương thích (byte vào word).

Câu hỏi liên quan