Intel 8086 TASM-非法号码




我一直在做一个程序,需要将寄存器的值与某个数字进行比较。在emu8086上模拟时,我没有troble,然而TASM编译器在所有行上都给了我错误:

cmp bx, 0xF7F0h

错误如下:

***Error*** div.ASM(163) Illegal number

有什么办法解决这个问题吗
当然,我可以将F7F0h值放入另一个寄存器或变量中,但我更喜欢将其保持为常数值。

TASM不理解0x...表示法。如果它抱怨F7F0h(因为它认为这是一个标签),则必须添加一个前导零:0F7F0h

cmp bx, 0xF7F0h

您同时使用了两种指定十六进制的方法
您编写了前缀0x以及后缀h

使用前缀形式cmp bx, 0xF7F0或后缀形式cmp bx, 0F7F0h。后者有一个前置的零,以避免与标签名称发生任何冲突。

最新更新