2

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

.const

    _mmx_cons   QWORD f000000000000000h

我得到一个构建错误:

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

但是如果我添加一个前导 0

.const

    _mmx_cons   QWORD 0f000000000000000h

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

4

1 回答 1

5

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

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

于 2013-11-14T12:45:49.363 回答