0
我目前通過遵循Kip Irvine的「彙編語言x86編程」一書學習彙編編程。
對於之前的代碼,我執行的代碼MOV EAX, listSize
行後得到的結果是,EAX
等於18
我期待可變listSize
爲包含值24(list
是4個字節長,list2
陣列是20個字節長,因此當$ - list
,即當前位置計數器減去list
,我應該得到24)
爲什麼會發生這種情況?我做錯什麼了嗎?
.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, dwExitCode: DWORD
.DATA
list BYTE 10, 20, 30, 40
list2 BYTE 20 DUP(0)
listSize = ($ - list)
.CODE
main PROC
MOV EAX, listSize
INVOKE ExitProcess, 0
main ENDP
END main
十六進制的'18'是十進制的'24'。 –
@Someprogrammerdude哈哈謝謝。該死的我犯這樣的愚蠢錯誤 – Thor