4.03 乘除指令

1、计算1EF0001000H+2010001EF0H,结果存放在AX(最高16位),BX(次高16位),CX(低16位)。

	答:
	mov ax,001EH   	 		#第一个数的的最高位16位
	mov bx,0F000H    		#第一个数的次高16位
	mov cx,1000H    		#第一个数的低16位
	add cx,1EF0H  			#cx加上第二个数的低16位,CF记录是否进位
	adc bx,1000H 			#bx加上第二个数的次高16位,CF记录是否进位
	adc ax,0020H  			#ax加上第二个数的最高16位,CF记录是否进位

2、下列程序片段完成什么功能,可否有更简单的方法实现同样的功能:

XCHG AX,[SI]

XCHG AX,[DI]

XCHG AX,[SI]

   答: 
   程序实现[SI]和[DI]中的内容交换;AX中内容不变;
   有,如下:
   PUSH [SI]
   PUSH [DI]
   POP  [SI]
   POP  [DI]  

3、自己动手实验:用cmp指令,分别比较有符号数和无符号数的大小,并记录相关标志位的值。

	答:
	1.无符号数比较与标志位取值
	思路:通过cmp 指令执行后相关标志位的值,可以看出比较的结果
	指令:cmp ax,bx

在这里插入图片描述

	2.有符号数比较与标志位取值
	问题:用cmp来进行有符号数比较时,CPU用哪些标志位对比较结果进行记录
	仅凭结果正负(SF)无法得出结论,需要配合是否溢出(OF)得到结论。
	示例指令:cmp ah,bh

在这里插入图片描述

4、8086/8088的算术逻辑运算指令最多一次处理多少2进制位?当欲处理的数据长度超出该范围怎么办?

	答:
	8086/8088的算术逻辑运算指令最多一次处理16bit的二进制位;如果处理的数据
    长度超出则分成若干部分进行逻辑运算,最后进行整合;

5、什么是除法溢出?如何解决16位被除数8位除数可能产生的溢出?

	答:   
	除法溢出是指除数如果是0,或者在8位除数时商超过8位,或者在16位除时商超过16位,
    则认为是除法溢出,引起0中断;
    首先要确定8位除数不能为0,其次要确定商的最大值不能超过8位,如果超过8位,则可
    采用16位的除法;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仙肖醒醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值