鱼C论坛

 找回密码
 立即注册
查看: 3224|回复: 5

谁有实验10的第2个问题的代码

[复制链接]
发表于 2011-7-24 17:24:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
最近做到实验10的第3的问题就老是出错。 我自己做出来了实验10的第一个问题,在做下面2个问题的时候就出问题了。都3天了还没解决。所以来论坛看看有高人会实验10的第2个问题不,麻烦把代码发上来我学习一下,实在搞不懂了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-5 19:33:18 | 显示全部楼层
assume cs:codesg


codesg segment
start: mov ax,4240h
           mov dx,000fh
           mov cx,0ah
           call divdw
           
       mov ax,4c00h
       int 21h
divdw:
    push ax
        
    mov ax,dx
    mov dx,0
        
    div cx
    mov bx,ax
        
    pop ax
        div cx
        mov cx,dx
        mov dx,bx
        
        ret
        
              
codesg ends
end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-6 14:47:17 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-8-6 17:15:31 | 显示全部楼层
  • assume cs:codesg
    
    
    
    
    
    codesg segment
    
    start: mov ax,4240h     ;L
    
               mov dx,000fh    ;H
    
               mov cx,0ah       ;N
    
               call divdw           ;调用子程序
    
               
    
           mov ax,4c00h
    
           int 21h
    
    divdw:
    
        push ax                   ;保存4240H
    
            
    
        mov ax,dx               ;把 H 放入ax 
    
        mov dx,0                 ;dx清零 不影响
    
            
    
        div cx                       ;除以cx  ax=商  dx=余数   当前ax=1  dx=5 
        mov bx,ax               ;商存放于bx      ax=1 dx=5
            
    
        pop ax                     ;ax又变回了4240     ax=4240    dx=5  
    
            div cx                   ;再除次 =  rem(H/N)的余数*65536也就是dx  +L =dx ax 在/N除以cx  cx=10
    
            mov cx,dx           ;cx=余数
    
            mov dx,bx           ;把刚才的商存回dx也就是int(H/N)*65536 +这句话
                                        ;ax呢 现在是 [rem(H/N)*65536+L]/N的结果
    
                                        ;int(H/N)*65536 + [rem(H/N)*65536+L]/N
    
            ret
    
            
    
                  
    
    codesg ends
    
    end start
    就是这样了..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-8-6 22:06:58 | 显示全部楼层
只是丶梦 发表于 2011-8-6 17:15

  • 就是这样了..

  • 看明白了,除完以后,DX还是存储的是高为的商,AX还是存储的低位的商
    谢谢耐心的解答,
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    发表于 2011-8-8 09:52:40 | 显示全部楼层
    :lol嗯呵.一开始我不知道这个是写什么代码..看着看着.突然就知道是除法溢出处理的那个代码了..
    想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

    GMT+8, 2025-2-8 07:11

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表