JavaScript is required

Khi xảy ra ngoại lệ, địa chỉ quay về sẽ được lưu trữ:

A.
Ở đỉnh ngăn xếp
B.
Ở thanh ghi đa năng
C.
Các thanh ghi LR tương ứng
D.
Ở các vị trí cố định trong bộ nhớ
Trả lời:

Đáp án đúng: C


Địa chỉ quay về (return address) khi xảy ra ngoại lệ (exception) thường được lưu trữ ở đỉnh của ngăn xếp (stack). Khi một ngoại lệ xảy ra, hệ thống cần lưu lại địa chỉ lệnh mà chương trình đang thực thi để sau khi xử lý ngoại lệ xong, chương trình có thể tiếp tục thực thi từ vị trí đó. Ngăn xếp là cấu trúc dữ liệu phù hợp cho việc này vì nó tuân theo nguyên tắc LIFO (Last-In, First-Out), đảm bảo địa chỉ quay về được lấy ra theo đúng thứ tự ngược lại với thứ tự các ngoại lệ xảy ra (nếu có nhiều ngoại lệ lồng nhau). Các lựa chọn khác không chính xác vì: - Thanh ghi đa năng (general-purpose registers) thường được sử dụng cho các mục đích khác nhau và không chuyên biệt để lưu trữ địa chỉ quay về khi có ngoại lệ. - Các thanh ghi LR tương ứng: LR (Link Register) thường được dùng để lưu địa chỉ quay về khi gọi hàm/thủ tục, nhưng không phải lúc nào cũng được dùng cho ngoại lệ, tùy thuộc vào kiến trúc hệ thống. - Các vị trí cố định trong bộ nhớ: Việc lưu địa chỉ quay về ở các vị trí cố định trong bộ nhớ sẽ không linh hoạt và không hỗ trợ việc xử lý các ngoại lệ lồng nhau (nested exceptions).

Câu hỏi liên quan