Intel 8086 TASM - 非法编号
Intel 8086 TASM - illegal number
我一直在做一个程序,我需要将寄存器的值与某个数字进行比较。在 emu8086 上仿真时我没有遇到任何问题,但是 TASM 编译器在所有行上都给我错误:
cmp bx, 0xF7F0h
错误如下所示:
***Error*** div.ASM(163) Illegal number
有什么解决办法吗?
当然,我可以将 F7F0h
值放入另一个寄存器或变量中,但我更愿意将其保持为常量。
TASM 不理解 0x...
符号。如果它抱怨 F7F0h
(因为它认为这是一个标签),你必须添加一个前导零:0F7F0h
.
cmp bx, 0xF7F0h
您同时使用了2种指定十六进制的方法!
您写了前缀 0x 以及后缀 h。
使用前缀形式 cmp bx, 0xF7F0
或后缀形式 cmp bx, 0F7F0h
。后者有一个前缀零,以避免与标签名称发生任何冲突。
我一直在做一个程序,我需要将寄存器的值与某个数字进行比较。在 emu8086 上仿真时我没有遇到任何问题,但是 TASM 编译器在所有行上都给我错误:
cmp bx, 0xF7F0h
错误如下所示:
***Error*** div.ASM(163) Illegal number
有什么解决办法吗?
当然,我可以将 F7F0h
值放入另一个寄存器或变量中,但我更愿意将其保持为常量。
TASM 不理解 0x...
符号。如果它抱怨 F7F0h
(因为它认为这是一个标签),你必须添加一个前导零:0F7F0h
.
cmp bx, 0xF7F0h
您同时使用了2种指定十六进制的方法!
您写了前缀 0x 以及后缀 h。
使用前缀形式 cmp bx, 0xF7F0
或后缀形式 cmp bx, 0F7F0h
。后者有一个前缀零,以避免与标签名称发生任何冲突。