我一直在做一個程序,我需要將某個寄存器的值與特定的數值進行比較。雖然模擬的emu8086我沒有troble,但是TASM編譯器給了我錯誤的所有行這樣:Intel 8086 TASM - 非法編號
cmp bx, 0xF7F0h
錯誤看起來是這樣的:
***Error*** div.ASM(163) Illegal number
任何想法如何解決這個問題?
當然,我可以將F7F0h
的值放入另一個寄存器或變量中,但我更願意將它保持爲一個常數值。
我一直在做一個程序,我需要將某個寄存器的值與特定的數值進行比較。雖然模擬的emu8086我沒有troble,但是TASM編譯器給了我錯誤的所有行這樣:Intel 8086 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
。後者有一個預先設置的零,以避免與標籤名稱發生衝突。