栈与子程序入门
1. 栈的基础概念
栈是程序中用于临时存储数据和地址的区域,它是一种一维的数据结构,遵循“后进先出”(LIFO)的原则。就像一摞盘子,最后放上去的盘子总是最先被拿走,栈中最后添加的数据项就是栈顶元素。
在程序中,需要预留一块内存来作为栈。可以通过声明栈段来实现,例如:
.STACK
lOOH
当程序被汇编并加载到内存中时, SS 寄存器会包含栈段的段号。对于上述栈段声明,栈指针 SP 初始化为 lOOh ,这表示空栈的位置。当栈不为空时, SP 包含栈顶的偏移地址。
2. 栈操作指令
2.1 PUSH 和 PUSHF
- PUSH 指令 :用于将一个新的字添加到栈中。语法为
PUSH source,其中source是一个 16 位寄存器或内存字。例如,PUSH AX。执行PUSH指令会导致以下操作:
1.SP减 2。
2.source内容的副本被移动到SS:SP指定的地址,source本身不变。 - PUSHF 指令
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



