解决除法溢出的问题
来源:互联网 发布:淘宝蜘蛛店 编辑:程序博客网 时间:2024/05/18 02:36
子程序描述:
名称:divdw
功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型
参数:
(ax)=dword 型数据的低16位
(dx)=dword型数据的高16位
(cx)=除数
返回结果:
(ax)=结果的低16位
(dx)=结果的高16位
(cx)=结果的余数
应用举例:1000000/10(F4240H/0AH)
结果:(dx)=0001H;(ax)=86A0H;(cx)=0
对算法公式的理解:
X/N=int(H/N)*65536+[rem(H/N)*65536+L]/N
assume cs:code
stack segment
dw 0,0,0,0
stack ends
code segment
start:
mov ax,stack
mov ss,ax
mov sp,9
mov ax,1000h
mov dx,0001h
mov cx,1h
call divdw
mov ax,4c00h
int 21h
divdw:
push ax // 将原被除数的低位(86A0H)入栈;
mov ax,dx //将原被除数的高位推到低位并使高位为0,即满足int(H/N)的条件
mov dx,0
div cx
mov bx,ax //第一次相除后,将除后的商(即最终结果的高位)保留到bx中,为int(H/N)*65536做准备
pop ax //还原原被除数的低位,高位为第一次相除后的余数,满足rem(H/N)*65536+L
div cx //第二次相除后,所得余数保存到cx中,再将先第一次相除所得的商(bx)结果保存到现结果的高位中
mov cx,dx
mov dx,bx
ret
code ends
end start
- 解决除法溢出的问题
- 解决除法溢出问题
- 编写解决除法溢出问题的子程序
- 实验10.2_解决除法溢出的问题
- 汇编实验10-2 解决除法溢出的问题
- 汇编语言解决除法溢出问题的小程序
- ***汇编语言 实验10.2 解决除法溢出的问题
- 汇编中的除法溢出的解决
- 王爽《汇编语言》实验10.2——解决除法溢出的问题
- 除法溢出问题
- 除法溢出问题
- 汇编语言 王爽 实验十 解决除法溢出问题
- 子程序解决除法溢出问题 基于8086汇编
- 汇编语言 之 除法溢出问题
- 第十章实验(二)除法溢出的问题
- 解决内存溢出的问题
- 解决游标溢出的问题
- 汇编语言 第三版 王爽 实验10-2 编写子程序 之 解决除法溢出问题 divdw
- ShellExecute
- js中获取地址栏中的参数
- rghrtgertgre
- MapReduce源码分析总结
- (转)ASP.NET 配置文件纵横谈(二)
- 解决除法溢出的问题
- 图像处理好站推荐
- Could not get lock /var/lib/apt/lists/lock
- JDBC配置DataSource及相关问题
- grib2 文件结构
- (转)ASP.NET 配置文件纵横谈(三)
- grib2 文件结构
- Java 网络爬虫的基本实现
- grib2 文件结构