JavaScript is required

Các thanh ghi nào giữ địa chỉ Offset khi 8086 truy cập vùng nhớ ngăn xếp?

A.
Chỉ có SP
B.
BX và SP
C.
Chỉ có BP
D.
BP và SP
Trả lời:

Đáp án đúng: D


Trong kiến trúc 8086, ngăn xếp (stack) là một vùng nhớ đặc biệt được sử dụng để lưu trữ dữ liệu tạm thời, địa chỉ trả về của các chương trình con, và các thông tin quan trọng khác. Hai thanh ghi chính được sử dụng để quản lý ngăn xếp là SP (Stack Pointer) và BP (Base Pointer). * **SP (Stack Pointer):** Thanh ghi SP luôn trỏ đến đỉnh của ngăn xếp. Khi một giá trị được đẩy (push) vào ngăn xếp, SP giảm đi (thường là 2 byte cho mỗi từ - word). Khi một giá trị được lấy ra (pop) khỏi ngăn xếp, SP tăng lên. SP được sử dụng để truy cập các phần tử trên đỉnh ngăn xếp. * **BP (Base Pointer):** Thanh ghi BP thường được sử dụng để truy cập các biến cục bộ của một hàm trong ngăn xếp. BP thường được thiết lập để trỏ đến một vị trí cố định trong ngăn xếp (ví dụ, đầu của khung ngăn xếp của hàm), và sau đó các biến cục bộ được truy cập bằng cách sử dụng offset so với BP. Điều này giúp việc truy cập các biến cục bộ dễ dàng hơn, ngay cả khi SP thay đổi do các thao tác push và pop. Như vậy, cả BP và SP đều giữ địa chỉ offset khi 8086 truy cập vùng nhớ ngăn xếp. Do đó, đáp án đúng là D: BP và SP.

Câu hỏi liên quan