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

UmN*_*obe 2 masm visual-studio-2010

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

.const

    _mmx_cons   QWORD f000000000000000h
Run Code Online (Sandbox Code Playgroud)

我收到一个构建错误:

test.asm(26): error A2006: undefined symbol : f000000000000000h
Run Code Online (Sandbox Code Playgroud)

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

.const

    _mmx_cons   QWORD 0f000000000000000h
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*ael 5

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

前导零不会影响立即数的值或存储大小要求。例如,写 完全没问题MOV AL, 00000001h,因为00000001h1.