2015-02-24 31 views
0

如果没有,推送到什么地方?在x86架构中,“push offset [name of variable]”是否将该变量的地址推送到激活记录上?

我想写一个MASM程序,涉及通过引用传递变量。

+0

术语“激活记录”有点不熟悉,但是如果你指的是堆栈,那么是的,它会推送该变量的地址(或者确切地说,它在它所在的段中的偏移量 - 在平坦的内存模型中,即“地址”)。在像8086这样的分段内存模型中,它确实意味着偏移量。然后地址由段和偏移组合而成。 – 2015-02-24 17:03:30

回答

0

术语“活动记录”是有些陌生,但如果你的意思是堆栈,那么,它推动该变量的地址(或者准确的说,它的偏移它驻留在一个平板内存模型,就像在32位或64位英特尔兼容平台,即“地址”)。

分段内存模型等中使用的16位8086,它的真正含义偏移而已。然后通过偏移量的组合形成(所谓的“远”)地址。

+0

激活记录是函数的堆栈,在这种情况下即将被调用(“激活”),即FYI。 – 2015-02-24 17:08:56

+0

谢谢@Stefano。我意识到这个术语最近变得越来越流行,并且不仅仅意味着堆栈(甚至根本不需要堆叠)。但“推”的使用已经告诉我一个堆栈是有意义的。 2015-02-24 17:13:02

相关问题