我的老师指示0
在hexa numbers
之前附加0
,同时编写指令,因为某些编译器在指令中搜索AND BL, 0FH
之前将其与标签区分开来。如果指令已经以0开头,我很困惑,在这种情况下该怎么做?
例如,
0
是否需要在该六进制数之前添加AND BL, 00FH
?请帮帮我。感谢
很抱歉,如果我以前不够清楚的话。我的意思是,在上面的例子中,0已经存在,我需要将其转换为,
{{1}}
答案 0 :(得分:5)
除0
或1
之类的特殊情况外,我倾向于使用完整数字编码我的十六进制数字,以便更容易看出其意图:
mov al, 09h
mov ax, 0123h
等等。
如果号码以字母字符开头(例如deadbeef
),我会在前面添加额外的0
。
但不,如果您的十六进制数字已经以数字开头,那么通常不需要(a)。
在任何情况下,我都会将大多数数字放入equ
语句中,而不是在整个代码中添加幻数。你愿意看看:
mov ax, 80
或:
mov ax, lines_per_screen
(a)当然,这取决于你的汇编程序,但是从内存来看,我用过的所有工作都是这样的。
答案 1 :(得分:3)
不,没有必要(并且包括多个前导0非常不寻常)。
你的例子很合适 - 没有前导0
告诉它这是一个数字,汇编程序通常将FH
解释为符号而不是数字。