- [ltp1234] push cx add si,1 ;结果的数字个数 04/09 01:58
- [ltp1234] 写的很好!! 04/08 23:48
- [游客] 我也不知道说些什么 挺一下好啦 04/03 20:50
- [e56004474] 没事的话,别坐电车。 据说。。。 03/17 18:52
- [waasmedu] 拜读!受教!! 12/21 11:18
- [chinatree] 不错,顶。 12/05 03:32
- [ljl] 晕,最后一题也没有想到。。。 12/04 14:56
- [mouse] 楼上的看错了,填空位置填inc cx,就是为了找到第一个值为0的byte 07/29 15:37
- [wbkyh] 检测点9.2中,loop s指令有问题,该指令执行后,cx=cx-1,如果cx=0,则循环结束,也就 06/28 09:32
- [游客] 结果是1,*p取得的是a的地址中的内容,也就是a的值 06/08 00:22
- [lp1989] 请教一道题: 在数据段BUF下开始已定义了信息“I LIKE IBM-PC”, 编写在屏 幕上显 12/29 13:32
- [fangaiyisheng] 飘过,很好 ,很强大! 06/18 06:05
- [游客] [ lyh1984 发表于 2009-06-26 10:39 ] 请问一下,我用DEB 07/15 10:59
- [lyh1984] 请问一下,我用DEBUG为什么调不出字符串呢?我想知道你们是怎么调的,是用CMD DEBUG吗? 06/26 10:39
- [q470393267] 我看你头像半天了,那猫和老鼠能抗啊都没有死~ 05/05 21:31
- [fangyugirl] 经过上机DEBUG,我已经知道问题在哪里了,谢谢你呀。 04/09 10:31
- [fangyugirl] 我是想问你第10章的第三个子程序,这个子程序我现在主要的问题是12666/10会产生溢出,所以我调用 04/09 09:57
- [mouse] [ wangping198611 发表于 2009-03-23 11:43 ] 03/31 10:28
- [mouse] miaozaoyang 发表于 2009-03-29 22:31 ] [ 删除留 03/31 10:23
- [miaozaoyang] 又得问你个问题了,不知道为什么,实验15 不能够正常进行,程序应该是没有任何问题的,还是操作系统的问 03/29 22:31
[2007-12-18 20:25] 第十章实验十---------除法子程序
功能:进行不会产生溢出的除法运算,被除数为dword型,除数为word型,结果为dword型。
assume cs:code
code segment
start:
mov ax,4240h ;被除数低16位
mov dx,000fh ;被除数高16位
mov cx,0ah ;除数
call divdw ;调用子程序divdw
mov ax,4c00h
int 21h
divdw:
push si
push di
mov di,ax ;将低16位ax暂存于bx
mov ax,dx ;将高16位进行除法运算
mov dx,0
div cx
mov si,ax ;将int(H/N)暂存于si
mov ax,di ;把低16位除法转换,此时dx存放的是高十六位除法时的余数
div cx
mov cx,dx ;将最终余数给cx
mov dx,si ;将结果高16位传dx,第十六位的除法商默认在ax中
pop di
pop si
ret
code ends
end start
assume cs:code
code segment
start:
mov ax,4240h ;被除数低16位
mov dx,000fh ;被除数高16位
mov cx,0ah ;除数
call divdw ;调用子程序divdw
mov ax,4c00h
int 21h
divdw:
push si
push di
mov di,ax ;将低16位ax暂存于bx
mov ax,dx ;将高16位进行除法运算
mov dx,0
div cx
mov si,ax ;将int(H/N)暂存于si
mov ax,di ;把低16位除法转换,此时dx存放的是高十六位除法时的余数
div cx
mov cx,dx ;将最终余数给cx
mov dx,si ;将结果高16位传dx,第十六位的除法商默认在ax中
pop di
pop si
ret
code ends
end start
评论次数(2) |
浏览次数(672) |
类型(汇编作业) |
收藏此文 |