Xung đột ngăn xếp và băng thanhghi số 1.

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 8051 pdf (Trang 32)

0007 08 0F10 1718 1F 20 2F 30 7F Băng0 Băng

2.6.11Xung đột ngăn xếp và băng thanhghi số 1.

Nh− ta đa nói ở trờn thỡ thanh ghi con trỏ ngăn xếp cú thể chỉ đến vị trớ RAM hiện thời dành cho ngăn xếp. Khi dữ liệu đợc lu cất cào ngăn xếp thỡ SP đợc tăng lờn và ngợc lại khi dữ liệu đợc lấy ra từ ngăn xếp thỡ SP giảm xuống. Lý do là PS đợc tăng lờn sau khi PUSH là phải biết lấy chắc chắn rằng ngăn xếp đang tăng lờn đến vị trớ ngăn nhớ 7FH của RAM từ địa chỉ thấp nhất đến địa chỉ cao nhất. Nếu con trỏ ngăn xếp đX đợc giảm sau cỏc lệnh PUSH thỡ ta nờn sử dụng cỏc ngăn nhớ 7, 6, 5 v.v... cđa RAM thc các thanh ghi R7 đến R0 của băng 0, băng thanh ghi mặc định. Việc tăng này của con trỏ ngăn xếp đối với cỏc lệnh PUSH cũng đảm bảo rằng ngăn xếp sẽ khụng với tới ngăn nhớ 0 của RAM (đỏy của RAM) và do vậy sẽ nhảy ra khỏi khụng gian dành cho ngăn xếp. Tuy nhiờn cú vấn đề nảy sinh với thiết lập mặc định của ngăn xếp. Vớ dụ SP = 07 khi 8051 đợc bật nguồn nờn RAM và cũng thuộc về thanh ghi R0 củ băng thanh ghi số 1. Hay núi cỏch khỏc băng thanh ghi số 1 và ngăn xếp đang dựng chung một khụng gian của bộ nhớ RAM. Nếu chơng trỡnh đX cho cần sử dụng cỏc băng thanh ghi số 1 và số 2 ta cú thể đặt lại vựng nhớ RAM cho ngăn xếp. Vớ dụ, ta cú thể cấp vị trớ ngăn nhớ 60H của RAM và cao hơn cho ngăn xếp trong ví dụ 2.10.

Ví dụ 2.10:

Biểu diễn ngăn xếp và con trỏ ngăn xếp đối với cỏc lệnh sau: MOV SP, #5FH ; Đặt ngăn nhớ từ 60H của RAM cho ngăn xếp MOV R2, #25H

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 8051 pdf (Trang 32)