Ứng dụng của ngăn xếp
MAIN ENDP END MAIN
Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT
Kiến trúc máy tính 2 - 53
Giải thích:
Kí tự nhập vào được cất ở thanh ghi AL. Để đưa con trỏ xuống đầu dòng tiếp theo thì phải hiển thị hai kí tự có mã ASCII là 0Dh (CR: về đầu dòng) và 0Ah (LF: xuống dòng). Quá trình hiển thị hai kí tự này sẽ làm thanh ghi AL bị thay đổi (xem lại
chức năng số 2 của ngắt 21h). Do đó cần phải lưu kí tự ban đầu vào ngăn xếp trước khi xuống dòng, khi nào muốn hiển thị kí tự này thì lại lấy nó ra từ ngăn xếp
Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT
Kiến trúc máy tính 2 - 54 Ví dụ 3:
Viết lệnh thực hiện các công việc sau: + Lưu nội dung thanh ghi cờ vào AX. + Xoá thanh ghi cờ.
Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT
Kiến trúc máy tính 2 - 55
Giải:
Ta không thể tác động tới thanh ghi cờ bằng các lệnh thông thường đã học như MOV, ADD, SUB, AND, OR…Bộ vi xử lý 8086 cung cấp hai lệnh sau để thao tác với thanh ghi cờ (cả hai lệnh đều liên quan tới ngăn xếp):
PUSHF ;Cất nội dung thanh ghi cờ vào ngăn xếp
POPF ;Lấy dữ liệu từ ngăn xếp đặt vào thanh ghi cờ
Sử dụng hai lệnh này ta có thể giải quyết yêu cầu đặt ra ở trên
Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT
Kiến trúc máy tính 2 - 56
PUSHF
POP AX ;chuyển nội dung thanh ghi cờ từ ngăn xếp vào AX
XOR BX, BX ;xóa BX (BX = 0)
PUSH BX ;Đặt giá trị 0 vào ngăn xếp
POPF ;Chuyển giá trị 0 từ ngăn xếp vào thanh ghi cờ
(xoá các cờ)
Bộ môn Kỹ thuật máy tính & mạng – Khoa CNTT
Kiến trúc máy tính 2 - 57