8086汇编中编写无溢出除法的子程序..docVIP

  • 23
  • 0
  • 约4.21千字
  • 约 6页
  • 2016-12-28 发布于重庆
  • 举报
8086汇编中编写无溢出除法的子程序 一、为什么除法会溢出 看到这个标题,你可能会问汇编中不是有div指令来实现除法运算吗?为什么我们还要自己写一个子程序来实现除法?为了说明我们为什么需要自己写一个实现除法的子程序,还得从除法为什么会发生溢出说起。 在汇编中,如果要使用除法运算,我们可以使用div指令,它实现的就是除法的功能,但是它是一个非常容易,甚至说不可避免会发生溢出的指令,下面来看看它的工作方式,我们就能知道个中源由。注:这里所说的除法溢出并不是指分母为0而发生溢出的情况。 div的工作方式: (1)除数:有8位和16位两种,在一个寄存器或内存单元中 (2)被除数:默认放在AX或DX和AX中,如果除数为8位,则被除数为16位,默认在AX中存放;如果除数为16位,被除数为32位,在DX和AX中存放,DX存放高16位,AX存放低16位 (3)结果:如果除数为8位,则AL(AX的低8位)存储除法操作的商,AH(AX的高8位)存储除法操作的余数;如果除数为16们,则AX存储除法操作的商,DX存放除法操作的余数。 用一个表格来表示上述的工作方式,如下表所示: 除数 被除数 结果 8位 16位,AX 商:AL,余数:AH 16位 32位,DX(高16位)+AX(低16位) 商:AX,余数:DX 就这么一看似乎还没有什么问题,下面我就以一个例子来说明一下种工作方

文档评论(0)

1亿VIP精品文档

相关文档