2015-02-24 19 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

相關問題