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 thủ tục con, và các thông tin khác cần thiết cho việc quản lý chương trình. Hai thanh ghi chính liên quan đến việc truy cập ngăn xếp là:

  • 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ừ). Khi một giá trị được lấy (pop) ra khỏi ngăn xếp, SP tăng lên. SP luôn quản lý địa chỉ offset của đỉnh ngăn xếp so với đoạn ngăn xếp (SS - Stack Segment).
  • BP (Base Pointer): Thanh ghi BP thường được sử dụng để truy cập các biến cục bộ trong ngăn xếp, đặc biệt là trong các hàm hoặc thủ tục. BP thường được thiết lập để trỏ đến một vị trí cố định trong ngăn xếp khi một hàm được gọi, và sau đó các biến cục bộ có thể được truy cập thông qua offset so với BP.

Như vậy, cả SP và BP đều có thể được sử dụng để giữ địa chỉ Offset khi 8086 truy cập vùng nhớ ngăn xếp, tuy nhiên, SP được sử dụng mặc định để quản lý đỉnh ngăn xếp, còn BP thường được dùng để truy cập các biến cục bộ trong ngăn xếp một cách linh hoạt hơn. Do đó, đáp án chính xác nhất là D. BP và SP

Câu hỏi liên quan