汇编中的除法溢出的解决
2014-05-05 18:02
274 查看
说明: 除法的指令为div + 8位(16位)
是8位时,会默认被除数是ax寄存器中的16位,商会保存在al中,ah保存余数
是16位时,会默认被除数是dx(为高位)和ax(低位)组成的32位,商保存在ax中,余数保存在dx中
问题:当有式子1000/1
mov ax,1000
mov bl,1
div bl
则会把商1000放到al中,由于超过了256,所以会产生溢出。
解决方法:可以把ax拆开来分别进行算。
mov ax,1000
mov bl,1
push al ;把低四位的保存起来
mov al,ah
mov ah,0 ;先计算高位的
div bl ;商放到al中,余数放到ah中
mov dl,al ;保存高四位的商
pop al ;取出低四位
div bl ;低四位的商放到al中,余数放到ah中
很好的解决了溢出的问题:http://bbs.csdn.net/topics/380155364
是8位时,会默认被除数是ax寄存器中的16位,商会保存在al中,ah保存余数
是16位时,会默认被除数是dx(为高位)和ax(低位)组成的32位,商保存在ax中,余数保存在dx中
问题:当有式子1000/1
mov ax,1000
mov bl,1
div bl
则会把商1000放到al中,由于超过了256,所以会产生溢出。
解决方法:可以把ax拆开来分别进行算。
mov ax,1000
mov bl,1
push al ;把低四位的保存起来
mov al,ah
mov ah,0 ;先计算高位的
div bl ;商放到al中,余数放到ah中
mov dl,al ;保存高四位的商
pop al ;取出低四位
div bl ;低四位的商放到al中,余数放到ah中
很好的解决了溢出的问题:http://bbs.csdn.net/topics/380155364
相关文章推荐
- 汇编语言解决除法溢出问题的小程序
- 汇编语言 王爽 实验十 解决除法溢出问题
- 2.解决除法溢出问题-汇编语言(王爽)-实验10 编写子程序
- 使用汇编语言解决除法溢出问题
- 汇编实验10-2 解决除法溢出的问题
- 汇编语言:实验10 根据材料编程—2.解决除法溢出的问题
- 汇编语言 第三版 王爽 实验10-2 编写子程序 之 解决除法溢出问题 divdw
- 子程序解决除法溢出问题 基于8086汇编
- 170417 汇编-除法防溢出和数值显示的子程序实操
- 王爽《汇编语言》实验10.2——解决除法溢出的问题
- 《汇编语言》实验10.2 解决除法溢出问题
- 解决除法溢出问题
- 解决除法溢出问题
- 汇编中防止除法溢出
- 实验10.2_解决除法溢出的问题
- 汇编语言 之 除法溢出问题
- 解决除法溢出的问题
- 一文读懂除法溢出-使用汇编重定向0号中端(除法错误中断,比如,执行div指令产生的除法溢出)
- 汇编语言下--如何防止除法溢出
- 解决除法溢出的问题