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。后者有一个前缀零,以避免与标签名称发生任何冲突。