JavaScript is required

Để đánh địa chỉ chuỗi đọc vào (chuỗi nguồn) thì thanh ghi đoạn DS (Data segment) ta phải kết hợp với thanh ghi nào sau đây?

A.
Thanh ghi ES
B.
Thanh ghi SI
C.
Thanh ghi SS
D.
Thanh ghi SP
Trả lời:

Đáp án đúng: A


Trong ngữ cảnh lập trình hợp ngữ (assembly), để truy cập một vị trí nhớ trong bộ nhớ, ta thường kết hợp một thanh ghi đoạn (segment register) với một thanh ghi offset. Thanh ghi đoạn xác định địa chỉ cơ sở của một đoạn bộ nhớ, và thanh ghi offset xác định khoảng cách từ địa chỉ cơ sở này đến vị trí bộ nhớ cụ thể mà ta muốn truy cập. Trong trường hợp đọc vào một chuỗi (chuỗi nguồn), thanh ghi đoạn **DS (Data Segment)** thường được sử dụng để trỏ đến đoạn dữ liệu. Để xác định địa chỉ chính xác của từng ký tự trong chuỗi nguồn, ta kết hợp DS với một thanh ghi offset. Thanh ghi **SI (Source Index)** thường được dùng làm thanh ghi offset để trỏ đến địa chỉ của ký tự hiện tại trong chuỗi nguồn. Khi thực hiện các lệnh thao tác chuỗi như `LODSB` (load string byte), `LODSW` (load string word), `MOVSB` (move string byte), `MOVSW` (move string word), SI sẽ tự động được tăng hoặc giảm (tùy thuộc vào cờ Direction Flag) để trỏ đến ký tự tiếp theo trong chuỗi. Các thanh ghi khác không được sử dụng cho mục đích này: * **ES (Extra Segment)** thường được sử dụng cho chuỗi đích. * **SS (Stack Segment)** được sử dụng cho stack. * **SP (Stack Pointer)** được sử dụng để trỏ đến đỉnh của stack. Do đó, đáp án chính xác là B.

Câu hỏi liên quan