Thông báo

Collapse
No announcement yet.

cho hỏi về giá trị con trỏ stack

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • cho hỏi về giá trị con trỏ stack

    Em đang làm kết thúc môn học thì thấy cái lệnh:
    MOV SP,#5FH (đặt giá trị con trỏ stack)
    Mà em ko hiểu về giá trị con trỏ stack mong mấy anh chỉ giáo

  • #2
    Nguyên văn bởi Noah1412 Xem bài viết
    Em đang làm kết thúc môn học thì thấy cái lệnh:
    MOV SP,#5FH (đặt giá trị con trỏ stack)
    Mà em ko hiểu về giá trị con trỏ stack mong mấy anh chỉ giáo
    Lấy ví dụ trên con 89C52:
    Khi bạn dùng các lệnh như call , pust, pop, .... thì SP sẽ tăng để lưu hoặc giảm để lấy dữ liệu - nên đọc thêm tài liệu. Mặc định SP nằm ở #07 nên bạn dùng nhiều lệnh có thao tác đến SP sẽ làm cho SP chạy 1 dải từ địa chỉ 08 trở lên. Như vậy những dữ liệu bạn ghi gần địa chỉ 08 ( lớn hơn 09 , 0AH...) sẽ bị mất. Nên khi viết code thường người ta đưa SP lên vùng gần cuối địa chỉ RAM - 0FFH, giá trị thì tùy người viết sao cho khi dùng SP không bị tràn qua 0FFh là được. Và mặc nhiên các ô nhớ từ SP đến 0FFh sẽ không được dùng để lưu dữ liệu nữa.

    email:mahaco@fpt.vn

    Comment


    • #3
      Con trỏ Stack Pointer là con trỏ chỉ địa chỉ của ô nhớ trong RAM mà khi bạn xếp dữ liệu vào ngăn xếp ( như lệnh Push, Pop, hay Call, Ret, Reti..) thì bạn sẽ tác động tới nó
      Bạn hoctro89xxx trả lời rất chính xác. Tôi chỉ bổ xung thêm một ý kiến nhỏ là nếu khi bạn sử dụng bank thanh ghi 1 (RS1=0, RS0=1) chứ không phải bank thanh ghi 0 (như mặc định) mà bạn sử dụng con trỏ SP như mặc định của chương trình (SP ở đầu chương trình là 07H) thì khi bạn sử dụng các lệnh tác động tới stack của vi điều khiển ( như lệnh push, pop, call...), bạn chắc chắn sẽ bị mất dữ liệu ở các thanh ghi R mà bạn lưu trước đó ( vì bị ghi đè lên). Thêm nữa, khi lập trình đa phần các bạn đều thích lưu dữ liệu vào các ô nhớ RAM có địa chỉ thấp, do đó tốt nhất là bạn nên di chuyển con trỏ SP về các byte RAM có địa chỉ cao (chỉ đừng để tràn là được rùi) thì sẽ tránh được tình trạng bị mất dữ liệu do ghi đè lên mà nhiều khi mình không biết
      Hy vọng ý kiến của tui giúp được bạn
      Chúc bạn vui và thành công

      Comment

      Về tác giả

      Collapse

      Noah1412 Tìm hiểu thêm về Noah1412

      Bài viết mới nhất

      Collapse

      Đang tải...
      X