Tham khảo tài liệu 'giới thiệu hợp ngữ assembler very good phần 5', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | Lệnh PUSHF không có toán hạng cất nội dung của thanh ghi cờ vào ngàn xếp Ban đầu SP chứa địa chỉ offset của ô nhớ theo sau đoạn ngăn xếp Lệnh PUSH đầu tiên giảm SP đi 2 làm cho con trỏ chỉ đến từ cuối cùng của trong đoạn ngăn xếp Bỏi vì lệnh PUSH làm giảm SP nên ngán xếp phát triển về phía đỉnh bộ nhớ. Hình chỉ ra lệnh PUSH làm việc như thế nào. Hình Sau lệnh PUSH AX Hình Sau lệnh PUSH BX Offset 00F0 00F2 00F4 00F6 - 00F8 00FC SP 00FA 00FC 5678 SP 1234 AX 00FE 1234 0100 5678 BX Ngốn xếp 187 POP và POPF. Lệnh POP được dùng để lấy ra phần tử đỉnh ngàn xếp. Cú pháp POP đích trong đó toán tử đích là một thanh ghi 16 bit trừ IP hoặc là một từ nhổ. Ví dụ I POP BX J Lệnh POP thực hiện các công việc sau đây 1 Nội dung của ô nhớ ss SP đỉnh ngăn xếp được chuyển tới toán tử đích. 2. SP táng lên 2. Hình chỉ ra một lệnh POP làm việc như thế nào. ị Lệnh POPF đưa vào thanh ghi cờ nội dung của đỉnh ngân xếp. Các lệnh PUSH PUSHF POP và POPF đểu không ảnh hưởng đến cờ. I Lưu ý rằng các lệnh PUSH và POP chỉ thao tác với các WORD vậy nên nếu dùng vổi các byte như sau PUSH DL không hợp lệ 1 là không hợp lệ. Cũng như vậy với số liệu trực tiếp PUSH 2 không hợp lệ - j Chú ý cết một số liệu trực tiếp là được phép đốì vối các bộ vi xử lý 80186 I 80486. Các bộ vi xử lý này sẽ được trình bày ở chương 20. 5 Ngoài chương trình của người sử dụng hệ điều hành cũng sử dụng ngăn ị xếp cho các mục đích của riêng nó. Ví dụ để thực hiện hàm INT 21h DOS ghi j lại mọi thanh ghi mà nó dùng đến vào ngán xếp và phục hồi chúng khi phục vụ 1 ngắt được hoàn thánh. Người sỏ dụng không cần qilan tâm đến vấn đề này bỏi 1 vỉ tất cả các giá trị mà DOS cất trong ngăn xếp sẽ được lấy ra hết trước khi trả1 .1 điều khiển cho chương trình của người sử dụng. I ặ í ì . Ị 1 188 Ị Hình . Trước lệnh POP. Hình . Sau lệnh POP cx. Offset 00F0 00F2 00F4 00F6 00F8 00FE SP 00FA 00FC 5678 5678 cx 00FE 1234 SP 0100 0001 BX Ngàn xếp .