JavaScript is required

Xét đoạn chương trình và cho biết kết quả ? DATA M1 DB ‘abcd,$’ Code …… CLD LEA SI,M1 LODSB

A.
Nạp một byte từ M1 vào AL
B.
Nạp một từ vào M1
C.
Nạp một từ vào AL
D.
Nạp một byte vào M1
Trả lời:

Đáp án đúng: A


Đoạn chương trình sử dụng các lệnh sau: 1. `DATA M1 DB 'abcd,$'` : Định nghĩa một vùng nhớ `M1` chứa chuỗi 'abcd,$'. Mỗi ký tự trong chuỗi này chiếm 1 byte. 2. `CLD`: Xóa cờ hướng (Direction Flag). Điều này có nghĩa là `SI` (Source Index) sẽ tự động tăng lên sau mỗi lần truy xuất bộ nhớ bằng các lệnh như `LODSB`. 3. `LEA SI, M1`: Nạp địa chỉ của `M1` vào thanh ghi `SI`. `SI` bây giờ trỏ đến byte đầu tiên của chuỗi 'abcd,$'. 4. `LODSB`: Lệnh này nạp một byte từ vị trí bộ nhớ mà `SI` đang trỏ tới vào thanh ghi `AL` (Accumulator Low byte). Sau đó, `SI` sẽ tự động tăng lên 1 (do `CLD` đã được thực hiện). Như vậy, lệnh `LODSB` sẽ nạp byte đầu tiên của chuỗi 'abcd,$' (tức là ký tự 'a') vào thanh ghi `AL`. Do đó, đáp án đúng là: Nạp một byte từ M1 vào AL.

Câu hỏi liên quan