
8086汇编语言小问题
我是个初学者,看到书上的程序后面的操作数有的加H,有的没有.如MOVAX25请问它是不是默认等于MOVAX25H呢.还是就是25即=9FH.很重要,请肯定的回答.感谢!...
我是个初学者,看到书上的程序后面的操作数有的加H,有的没有.如MOV AX 25
请问它是不是默认等于MOV AX 25H 呢. 还是就是25 即=9FH.很重要,请肯定的回答.感谢! 展开
请问它是不是默认等于MOV AX 25H 呢. 还是就是25 即=9FH.很重要,请肯定的回答.感谢! 展开
展开全部
别的汇编语言,我不了解。Intel 8086/8088汇编语言编译器开始时所默认的整数进制为十进制。指令:MOV AX,25中的25,指十进制的25。
可以用进制伪指令RADIX来改变默认的进制。
伪指令RADIX用来设置整数的缺省进制,宏汇编开始时所默认的整数进制为十进制。该伪指令的使用格式如下:
.RADIX exp
其中:伪指令前面要用点‘.’开始,exp的值必须是区间[2, 16]内的一个整数。
该伪指令说明其下面整数的默认进制为exp。如果某整数已显式地表明了其进制,则该默认进制对其不起作用。在源文件中,可以使用多个RADIX伪指令来分别说明其后整数的默认进制,但为了避免引起不必要误会,我们不提倡这样去做。
例如:
.radix 8
B1 DB 10, 11, 12 ;这三个数是八进制数
DB 10D ;这数是十进制数,因为它已用'D'明确说明而不使用缺省进制
…
.radix 10
MOV AX, 1234 ;1234是十进制数
MOV AX, 1234H ;1234H是十六进制数
可以用进制伪指令RADIX来改变默认的进制。
伪指令RADIX用来设置整数的缺省进制,宏汇编开始时所默认的整数进制为十进制。该伪指令的使用格式如下:
.RADIX exp
其中:伪指令前面要用点‘.’开始,exp的值必须是区间[2, 16]内的一个整数。
该伪指令说明其下面整数的默认进制为exp。如果某整数已显式地表明了其进制,则该默认进制对其不起作用。在源文件中,可以使用多个RADIX伪指令来分别说明其后整数的默认进制,但为了避免引起不必要误会,我们不提倡这样去做。
例如:
.radix 8
B1 DB 10, 11, 12 ;这三个数是八进制数
DB 10D ;这数是十进制数,因为它已用'D'明确说明而不使用缺省进制
…
.radix 10
MOV AX, 1234 ;1234是十进制数
MOV AX, 1234H ;1234H是十六进制数
展开全部
很明显,如果没有加H的话,这是默认为十进制的,编程要注意这个问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-07-05
展开全部
别的汇编语言,我不了解。Intel 8086/8088汇编语言编译器开始时所默认的整数进制为十进制。指令:MOV AX,25中的25,指十进制的25。
可以用进制伪指令RADIX来改变默认的进制。
伪指令RADIX用来设置整数的缺省进制,宏汇编开始时所默认的整数进制为十进制。该伪指令的使用格式如下:
.RADIX exp
其中:伪指令前面要用点‘.’开始,exp的值必须是区间[2, 16]内的一个整数。
该伪指令说明其下面整数的默认进制为exp。如果某整数已显式地表明了其进制,则该默认进制对其不起作用。在源文件中,可以使用多个RADIX伪指令来分别说明其后整数的默认进制,但为了避免引起不必要误会,我们不提倡这样去做。
例如:
.radix 8
B1 DB 10, 11, 12 ;这三个数是八进制数
DB 10D ;这数是十进制数,因为它已用'D'明确说明而不使用缺省进制
…
.radix 10
MOV AX, 1234 ;1234是十进制数
MOV AX, 1234H ;1234H是十六进制数
很明显,如果没有加H的话,这是默认为十进制的,编程要注意这个问题。
可以用进制伪指令RADIX来改变默认的进制。
伪指令RADIX用来设置整数的缺省进制,宏汇编开始时所默认的整数进制为十进制。该伪指令的使用格式如下:
.RADIX exp
其中:伪指令前面要用点‘.’开始,exp的值必须是区间[2, 16]内的一个整数。
该伪指令说明其下面整数的默认进制为exp。如果某整数已显式地表明了其进制,则该默认进制对其不起作用。在源文件中,可以使用多个RADIX伪指令来分别说明其后整数的默认进制,但为了避免引起不必要误会,我们不提倡这样去做。
例如:
.radix 8
B1 DB 10, 11, 12 ;这三个数是八进制数
DB 10D ;这数是十进制数,因为它已用'D'明确说明而不使用缺省进制
…
.radix 10
MOV AX, 1234 ;1234是十进制数
MOV AX, 1234H ;1234H是十六进制数
很明显,如果没有加H的话,这是默认为十进制的,编程要注意这个问题。
参考资料: http://zhidao.baidu.com/question/104804631.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这两个数的加法,已经产生了进位。
这个进位,要当做256,最终结果是263:
10000010
+
10000100
+
1
-------------------
1
00000111
256
7
=
263
减法,就是借位的问题了,可以仿照上面分析计算。
这个进位,要当做256,最终结果是263:
10000010
+
10000100
+
1
-------------------
1
00000111
256
7
=
263
减法,就是借位的问题了,可以仿照上面分析计算。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你定义数据的时候把OPR1和OPR2定义成16位的数就可以了,由于无符号8位2进的表示范围是0道255,你的结果为260,超出了0到255的范围,所以产生溢出,OF位等于1。所以答案将会产生错误。SBB和ADC一样,都要考虑到CF位。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询