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