ZKX's LAB

汇编中栈的保存现场工作原理 局部变量是存放在栈中,还是存放在堆栈中?

2021-04-23知识6

汇编的入栈和出栈指令为什么可以直接在段寄存器和内存单元之间操作 要硬件原理 大侠求解 push、pop指令可以操作寄存器,也可以操作内存单元。这个功能没有为什么,硬件设计时就具备的功能。

汇编语言中,关于入栈出栈的理解。数据出栈后会被清掉吗,它还在内存单元中吗 数据出栈后在没有新的数据进栈前它在内存单元中的值没变,但你几乎无法常规读取(除非你知道SS及SP)。

汇编语言,微机原理,出栈 POP 段分为数据段(ds),堆栈段(SS),代码段(CS),附加段(ES)所以你把段理解为SS是不正确的。push 是把操作数写入SS段,pop是从SS段读取数据,写入指定的寄存器或地址中,而写入的地址,则在数据段(默认)或附加段中(指定)中。push[bx];[bx]默认使用ds段,所以本句等同于push cs:[bx],意思是将[bx]中的数据进栈,而进栈写入的地方则是SS段。push es:[bx];不解释了pop bx;从SS段读取数据,写入bxpop[bx];等同于pop cs:[bx],解释同上面pushpop es:[bx]

#汇编中栈的保存现场工作原理

随机阅读

qrcode
访问手机版