Skip to main content

Đăng ký ngăn xếp là gì?

Liên quan đến máy tính, thanh ghi ngăn xếp là vị trí bộ nhớ mdash;thường trên đơn vị xử lý trung tâm (CPU) hoặc phần cứng xử lý liên quan mdash;giữ địa chỉ hiện tại của đỉnh của một vùng bộ nhớ máy tính riêng biệt được gọi là ngăn xếp.Thanh ghi ngăn xếp rất quan trọng bởi vì, nếu không có nó, một máy tính sẽ cần phải thực hiện một phương pháp chậm hơn, dễ bị lỗi hơn để truy tìm dòng thực hiện của một chương trình.Trong hầu hết các kiến trúc hệ thống, thanh ghi ngăn xếp là một thanh ghi chuyên dụng nên không vô tình truy cập khi làm việc với các thanh ghi bộ nhớ khác.Hiếm khi hơn, một thanh ghi ngăn xếp có thể là một thanh ghi chung thường có thể truy cập được bởi một chương trình nhưng đó có chủ ý không được sử dụng vì việc sử dụng nó được xác định bởi nhà sản xuất.Khi một hệ thống máy tính chứa hai hoặc nhiều thanh ghi ngăn xếp, có nghĩa là có khả năng có nhiều hơn một ngăn xếp, kiến trúc được gọi là máy ngăn xếp.

ở cấp độ thấp nhất của lập trình máy tính, một ngăn xếp là khu vực của bộ nhớ mdash;thường trong bộ nhớ truy cập ngẫu nhiên (RAM) mdash;đó có một loại hành vi được xác định rõ.Ngăn xếp có thể có thông tin được thêm vào nó trong một quy trình gọi là đẩy hoặc nó có thể có thông tin lấy từ nó, được gọi là popping.Mô hình cho một ngăn xếp là lần đầu tiên, cuối cùng, có nghĩa là nếu một số mẩu thông tin được đẩy vào ngăn xếp, thì phần tử đầu tiên được đẩy vào sẽ là phần cuối cùng được bật ra, trong khi phần tử cuối cùng được đẩy vào sẽHãy là người đầu tiên được truy xuất với một lệnh pop.Một thanh ghi ngăn xếp theo dõi đỉnh của ngăn xếp, luôn luôn là mục cuối cùng được đẩy vào nó. Khi một chương trình máy tính đang thực hiện, mỗi hướng dẫn đang được thực thi có một địa chỉ bộ nhớ cụ thể trong đó nó được lưu trữ tạm thời trong thời giancủa chương trình.Nếu một chương trình gọi một chương trình con mdash;hoặc một thủ tục, chức năng hoặc phương pháp, tùy thuộc vào ngôn ngữ lập trình mdash;Sau đó, chương trình phải nhảy đến địa chỉ bộ nhớ của mã chương trình con để thực thi nó.Địa chỉ nơi luồng điều khiển chương trình phá vỡ để phân nhánh đến chương trình con được đẩy lên ngăn xếp để nó được ghi nhớ.Khi chương trình con đã hoàn thành thực thi, chương trình biết nơi nó sẽ trả lại trong mã chính bằng cách bật địa chỉ mã từ đầu ngăn xếp, nơi thanh ghi ngăn xếp được trỏ. Mặc dù có những phương thức khác có thể được sử dụngĐạt được kết quả tương tự, sử dụng thanh ghi ngăn xếp và ngăn xếp cho phép một khái niệm lập trình quan trọng được gọi là đệ quy.Một hàm đệ quy là một hàm, trong mã của chính nó, tự gọi.Quá trình này thường được sử dụng trong các thuật toán sắp xếp và cho các hàm toán học nhất định.Thanh ghi ngăn xếp đang theo dõi tất cả các địa chỉ cuối cùng trong đó việc thực hiện đang phân nhánh, vì vậy một chức năng có thể thực hiện đệ quy một cách an toàn với kiến thức, cuối cùng, kiểm soát sẽ trở lại điểm xuất phát.Một biến chứng xảy ra nếu toàn bộ ngăn xếp trở nên đầy đủ và không có chỗ trong bộ nhớ vẫn còn, trong trường hợp đó xảy ra tràn ngăn xếp, ngừng thực hiện chương trình.