Ngăn xế p

Một phần của tài liệu Giáo trình Cấu trúc máy tính (Nghề Quản trị mạng) (Trang 123 - 125)

M Ụ C L Ụ C

4.1.Ngăn xế p

4. Ngăn xế p và các th ủ t ụ c

4.1.Ngăn xế p

Đoạn ngăn xếp (stack segment) trong chương trình được dùng để cất giữ

tạm thời số liệu và địa chỉ . Trong phần này chúng ta sẽ xem xét cách tổ chức

stack và sử dụng nó để thực hiện các thủ tục (procedure).

Ngăn xếp là cấu trúc dữ liệu 1 chiều. Điều đó có nghĩa là số liệu được đưa

vào và lấy ra khỏi stack tại đầu cuối của stack theo nguyên tắc LIFO ( last in first out) . Vị trí tại đó số liệu được đưa vào hay lấy ra gọi là đỉnh của ngăn xếp (top of stack) .Có thể hình dung satck như một chồng đĩa. Đĩa đưa vào sau cùng

nằm tại đỉnh của chồng đĩa. Khi lấy ra, đĩa trên cùng sẽ được lấy ra trước. Một

chương trình phải dành ra một khối nhớ cho ngăn xếp. Chúng ta dùng chỉ dẫn

.STACK 100h để khai báo kích thước vùng stack là 256 bytes . Khi chương

trình được dịch và nạp vào bộ nhớ thanh ghi SS ( stack segment) sẽ chứa địa chỉ

báo stack 100h trên đây , SP nhận giá trị100h . Điều này có nghĩa là stack trống

rỗng (empty) như hình 6.1.

Lnh PUSH

Để thêm một từ mới vào stack chúng ta dùng lệnh :

PUSH nguồn; đưa một thanh ghi hoặc từ nhớ 16 bit vào stack Ví dụ PUSH AX . Khi lệnh này được thực hiện thì :

· SP giảm đi 2

· một bản copy của toán hạng nguồn đưọc chuyển đến địa chỉ SS:SP cịn tốn hạng nguồn không thay đổi .

Lnh POP

Để lấy số liệu tại đỉnh stack ra khỏi stack ,chúng ta dùng lệnh :

POP đích ; lấy số liệu tại đỉnh stack ra đích

Đích có thể là 1 thanh ghi hoặc từ nhớ 16 bit . Ví dụ :

POP BX ; Lấy số liệu trong stack ra thanh ghi BX . Khi thực hiện lệnh POP :

· nội dung của đỉnh stack ( địa chỉ SS:SP) được di chuyển đến đích .

· SP tăng 2

Một phần của tài liệu Giáo trình Cấu trúc máy tính (Nghề Quản trị mạng) (Trang 123 - 125)