【虎彡】32位无符号除法运算,需要注释
时间:2010-12-23
来源:互联网
我数学好烂!~
求注释 注释~
;无符号数的32位值除以16位值
;入:DXAX=被除数
; CX=除数
;出:DXAX=商
; BX=余数
;===============================
subn_32v16 proc near
push ax ;低16位保存
mov ax,dx ;高位送入ax
mov dx,0
div cx ;除16位数
mov bx,ax ;商送bx
pop ax ;恢复低16位
div cx ;除16位数
xchg bx,dx ;bx=yushu ,DX,AX=商
ret
subn_32v16 endp
;===============================
;无符号数的32位值除以32位值
;入:DXAX=被除数
; CXBX=除数
;出:DXAX=商
; CXBX=余数
;===============================
subn_32v32 proc near
test cx,cx ;除数高16是0吗
jnz sss_1 ;不是转
mov cx,bx ;除数低16送入cx
call subn_32v16;调用无符号数的32位值除以16位的除法子程序
xor cx,cx
ret
sss_1:
push di
xor di,di
sss_lp1:
sub ax,bx
sbb dx,cx
jc sss_out
inc di
jmp sss_lp1
sss_out:
add bx,ax
adc cx,dx
mov ax,di
mov dx,0
pop di
ret
subn_32v32 endp
求注释 注释~
;无符号数的32位值除以16位值
;入:DXAX=被除数
; CX=除数
;出:DXAX=商
; BX=余数
;===============================
subn_32v16 proc near
push ax ;低16位保存
mov ax,dx ;高位送入ax
mov dx,0
div cx ;除16位数
mov bx,ax ;商送bx
pop ax ;恢复低16位
div cx ;除16位数
xchg bx,dx ;bx=yushu ,DX,AX=商
ret
subn_32v16 endp
;===============================
;无符号数的32位值除以32位值
;入:DXAX=被除数
; CXBX=除数
;出:DXAX=商
; CXBX=余数
;===============================
subn_32v32 proc near
test cx,cx ;除数高16是0吗
jnz sss_1 ;不是转
mov cx,bx ;除数低16送入cx
call subn_32v16;调用无符号数的32位值除以16位的除法子程序
xor cx,cx
ret
sss_1:
push di
xor di,di
sss_lp1:
sub ax,bx
sbb dx,cx
jc sss_out
inc di
jmp sss_lp1
sss_out:
add bx,ax
adc cx,dx
mov ax,di
mov dx,0
pop di
ret
subn_32v32 endp
作者: znxllyuan 发布时间: 2010-12-23
好像没什么要注释了的吧,不都已经有了麽。就是 subn_32v32 子程后面,如果除数的高位 word cx 不为 0 时,直接就是被除数减除数了,直减到小于 0 为止;减的次数就是商。
作者: zara 发布时间: 2010-12-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28