我一直在做一个程序,需要将寄存器的值与某个数字进行比较。在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
。后者有一个前置的零,以避免与标签名称发生任何冲突。