x86汇编语言,当前位置计数器$未返回预期结果

时间:2017-06-22 23:32:15

标签: assembly x86 masm

我目前正在学习汇编编程,遵循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

enter image description here

1 个答案:

答案 0 :(得分:4)

寄存器中的显示值均为十六进制(基数为16),因此00000018为十进制24。