masm中的十六进制值以字母开头

时间:2013-11-12 16:06:06

标签: visual-studio-2010 masm

masm中的十六进制值必须以数字开头吗?如果我使用

.const

    _mmx_cons   QWORD f000000000000000h

我收到了构建错误:

test.asm(26): error A2006: undefined symbol : f000000000000000h

但如果我添加前导0

.const

    _mmx_cons   QWORD 0f000000000000000h

错误消失了。这是为什么?我确定它代表64位值0xf000000000000000

1 个答案:

答案 0 :(得分:1)

使用h后缀的十六进制数字必须以十进制数字开头,否则会被误认为是标签名称。这就是为什么如果最重要的十六进制数字为A F,则添加前导零。

前导零不会影响立即数的值或存储大小要求。例如,写MOV AL, 00000001h是完全可以的,因为00000001h1完全相同。