汇编 | CPU提供的栈机制
CPU提供的栈机制:
push 寄存器/段寄存器/内存单元:将寄存器/段寄存器/内存单元中的数据压入栈中
pop 寄存器/段寄存器/内存单元:从栈顶取出的数据送入寄存器/段寄存器/内存单元中
push和pop实质上是一种内存传送指令。
8086CPU的push和pop都是以字为单位进行。
栈顶的段地址存放在SS中,偏移地址存放在SP中。
SS:SP指向栈中的第一个元素。
**注:栈顶在上面,低位在上面。在8086CPU中,入栈时,栈顶从高地址向低地址方向发展。
栈为空时,SS:SP指向栈空间最高地址单元的下个单元。不能直接向段寄存器SS中送入数据。
出栈pop,其实只是将SP=SP+2移动,并未将数据清除掉。**
8086CPU不保证对栈操作不会越界。
数据段地址:DS(DS:IP)
代码段地址:CS(CS:IP)
栈段地址:SS(SS:SP)
一般只执行一条命令mov ss,ax时,mov sp,地址自动执行了。
Debug的T命令在执行修改寄存器SS的指令时,下一条指令也紧接着被执行。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。