. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  10.2的疑问,要怎么改我写的程序呢,高手请指点  [已解决] 回复[ 3次 ]   点击[ 529次 ]  
jhszcn
[帖 主]   [ 发表时间:2008-03-24 18:13 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:22
注册日期:2008-03-17 22:23
assume cs:code,ds:data

data segment
        dd 4 dup(0)
data ends
code segment
start:
        mov ax,data
        mov ds,ax
        mov ax,4240h
        mov dx,0fh
        mov cx,0ah
        call divdw
        mov ax,4c00h
        int 21h
        
divdw:
                mov si,0
                mov [si],ax
                mov [si+2],dx
                mov [si+4],cx   ;被除数低16位(ax),低16位(dx),除数(cx)传送到data段中
                mov ax,dx
                mov dx,0
                div cx          
                mov dx,0                ;计算int(h/n)
                mul 65536 ;65536??这一乘不就是32位乘32位64位了?是不是错了(过不了编译65536溢出)
                mov [si+6],ax
                mov [si+8],dx   ;保存int(h/n)*65536的值
                mov ax,[si+2]
                mov dx,0
                div cx
                mov ax,dx
                mov dx,0
                mul 65536
                add ax,[si]
                adc dx,0         
                div cx                                ;计算[rem(h/n)*65536+l]/n
                add ax,[si+6]
                adc dx,[si+8]
                ret
code ends

end start
wdm
[第1楼]   [ 回复时间:2008-03-24 20:47 ]   [引用]   [回复]   [ top ] 
荣誉值:342
信誉值:0
注册日期:2007-12-06 10:21
mul 65536 ;65536??这一乘不就是32位乘32位64位了?是不是错了(过不了编译65536溢出) 
=========
楼主太执着了。变通一下,x*65536其实不就是等于将x放入dx寄存器中么。呵呵
楼主写的数据都大于16为寄存器的大小了,当然会出现编译错误啊。
楼主自己在改改自己的程序吧。
jhszcn
[第2楼]   [ 回复时间:2008-03-25 10:11 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:22
注册日期:2008-03-17 22:23
谢谢wdm,感谢~
jhszcn
[第3楼]   [ 回复时间:2008-03-28 09:43 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:22
注册日期:2008-03-17 22:23
此贴由 贴主 于 [ 2008-03-28 09:43 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(wdm):4分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved