栈
入栈 PUSH:将16位寄存器或者内存中的字型数据压入栈顶
出栈 POP :将栈顶的字型数据存入16位寄存器或内存中
栈顶标记是内存地址,在8086CPU中,在任意时刻将段地址寄存器 SS 和偏移地址寄存器 SP 所组合的内存地址当做栈顶标记。
PUSH ax :修改SP寄存器中的值:SP = SP - 2,将 ax 中的字型数据入栈
POP bx :将栈顶中的字型数据存入bx:修改栈顶标记,SP = SP + 2
栈的极限大小:将 SP 寄存器设置为 0时 ,栈最大(0~FFFFH),栈越界时不会报错
栈的作用:
临时性保存数据
-
- 将 CALL 指令下一条指令的地址压栈,通过 RET 可指令取出该地址
- 将寄存器的值压栈,更改寄存器的值后,可以通过栈还原寄存器
交换数据
-
- 将寄存器或内存的数据相互交换
CPU将内存中的某段内容当作指令是因为CS,IP指向那里
CPU将内存中的某段内容当作指令是因为SS,SP指向那里

浙公网安备 33010602011771号