我在讀一個彙編語言的書,在那裏我碰到這條線的空間分配:如何組裝`dup`操作字符串和數組
Byte 4 dup('stack') ;20bytes: "stackstackstackstack"
這是如何指導工作?這條指令是如何爲4個「堆棧」分配空間的。它是如何做到的?
我在讀一個彙編語言的書,在那裏我碰到這條線的空間分配:如何組裝`dup`操作字符串和數組
Byte 4 dup('stack') ;20bytes: "stackstackstackstack"
這是如何指導工作?這條指令是如何爲4個「堆棧」分配空間的。它是如何做到的?
4 DUP 'stack'
只是表示「字符串'stack'
的4個副本」。
for (int i=0; i < 4; ++i) {
AllocateSpaceFor("stack");
}
的dup
指令不執行期間運行,只有在彙編時編碼。如在http://msdn.microsoft.com/en-us/library/3h2ye0a0.aspx,dup
中所解釋的那樣,指定給定值的計數次數。這樣,
myvar1 db 4 dup('stack')
...分配 'stackstackstackstack',過程中的裝配時間,而不是執行,內存地址,即myvar1
。
'dup'操作數在執行期間不運行,只在彙編時進行編碼。 – Pyromaster 2014-09-07 01:17:55
該答案不正確,並且給出的代碼與DUP不相同。 -1 – EJP 2014-09-07 01:47:06