masm中的十六进制值必须以数字开头吗?如果我使用
.const
_mmx_cons QWORD f000000000000000h
我收到了构建错误:
test.asm(26): error A2006: undefined symbol : f000000000000000h
但如果我添加前导0
.const
_mmx_cons QWORD 0f000000000000000h
错误消失了。这是为什么?我确定它代表64位值0xf000000000000000
?
答案 0 :(得分:1)
使用h
后缀的十六进制数字必须以十进制数字开头,否则会被误认为是标签名称。这就是为什么如果最重要的十六进制数字为A
F
,则添加前导零。
前导零不会影响立即数的值或存储大小要求。例如,写MOV AL, 00000001h
是完全可以的,因为00000001h
与1
完全相同。