在六进制数之前追加0

时间:2012-05-01 06:00:37

标签: x86-16 assembly

我的老师指示0hexa numbers之前附加0,同时编写指令,因为某些编译器在指令中搜索AND BL, 0FH 之前将其与标签区分开来。如果指令已经以0开头,我很困惑,在这种情况下该怎么做?

例如,

0

是否需要在该六进制数之前添加AND BL, 00FH ?请帮帮我。感谢

编辑:

很抱歉,如果我以前不够清楚的话。我的意思是,在上面的例子中,0已经存在,我需要将其转换为,

{{1}}

2 个答案:

答案 0 :(得分:5)

01之类的特殊情况外,我倾向于使用完整数字编码我的十六进制数字,以便更容易看出其意图:

mov al, 09h
mov ax, 0123h

等等。

如果号码以字母字符开头(例如deadbeef),我会在前面添加额外的0

但不,如果您的十六进制数字已经以数字开头,那么通常不需要(a)

在任何情况下,我都会将大多数数字放入equ语句中,而不是在整个代码中添加幻数。你愿意看看:

mov ax, 80

或:

mov ax, lines_per_screen

(a)当然,这取决于你的汇编程序,但是从内存来看,我用过的所有工作都是这样的。

答案 1 :(得分:3)

不,没有必要(并且包括多个前导0非常不寻常)。

你的例子很合适 - 没有前导0告诉它这是一个数字,汇编程序通常将FH解释为符号而不是数字。