2015-11-01 50 views
2


我一直在做一個程序,我需要將某個寄存器的值與特定的數值進行比較。雖然模擬的emu8086我沒有troble,但是TASM編譯器給了我錯誤的所有行這樣:Intel 8086 TASM - 非法編號

cmp bx, 0xF7F0h 

錯誤看起來是這樣的:

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

任何想法如何解決這個問題?
當然,我可以將F7F0h的值放入另一個寄存器或變量中,但我更願意將它保持爲一個常數值。

回答

5

TASM不理解0x...表示法。如果它抱怨F7F0h(因爲它認爲這是一個標籤),則必須添加前導零:0F7F0h

1
cmp bx, 0xF7F0h 

您使用了兩種方法來同時指定十六進制!
您寫了前綴0x以及後綴h

可以使用前綴形式cmp bx, 0xF7F0或後綴cmp bx, 0F7F0h。後者有一個預先設置的零,以避免與標籤名稱發生衝突。