push指令
push 3
1
push操作涉及到下面几个步骤
取出ESP寄存器里的地址
减去4个字节(int类型,向下生长)
新地址写入ESP
3被写入这个地址开始的四个字节
push指令执行过程是
在32位的X86处理器(例如Intel 386)中:
(1)若段描述符中的D\B位为1,则栈操作将使用ESP寄存器:
先将ESP数值减去栈数据的长度 sub esp,register's long.(sizeof register)
再将数据压入栈:mov ss:[esp],register
(2)若段描述符中的D\B位为0,则栈操作将使用SP寄存器:
先将SP数值减去栈数据的长度 sub sp,register's long.(sizeof register)
再将数据压入栈:mov ss:[sp],register