汇编网首页登录博客注册
qingpengchen2011的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
友情链接

[2011-07-29 19:15] 泪流满面的实验十子程序二啊~。~

好吧。。由于我对于公式的笨蛋理解。。把几行可以搞定的代码型成好几十行才搞定。。- -!
这是在本论坛看了,理解后的。。。非常感觉这个地方呀。让我学习到很多~

assume cs:code,ss:stack
stack segment
dw 8 dup(0)
stack ends

code segment
 
  start:
     mov ax,stack
     mov ss,ax
     mov sp,16
     
     mov ax,4241h
     mov dx,000fh
     mov cx,0ah
     call divdw
     
     mov ax,4c00h
     int 21h
    

 ; the divdw
     ; 功能:进行不会产生除法溢出的运算,被除数为dword型,除数为word型,结果为dword型
     ;参数:(ax)=dword型数据的低16位
      ;     (dx)=dword型数据的高16位
      ;     (cx)=除数
     ;返回值 :(dx)=结果的高16位,(ax)=结果的低16位 (cx)=余数
     divdw:
     
     ;保存寄存器的值
       push bx
     
     
       push ax ;低位入栈保存
       
       ;构造高位除法
       mov ax,dx
       mov dx,0
       
       div cx ;除法运算后,dx存放高位的余数,ax 存入高位的商
       
       mov bx,ax ;将高位商存入bx
       pop ax ;低位出栈, 此时dx中存放着高位除法运算后的余数
       
       div cx ; 运算后,ax存放着低位的商,dx存放着低位的余数.-->即为整个除法运算的余数
       
       mov cx,dx ;将余数存入cx
       mov dx,bx ;高位商存入dx
       
       ;寄存器恢复
       pop bx
       ret 
  code ends
  end start
评论次数(4)  |  浏览次数(553)  |  类型(汇编作业) |  收藏此文  | 

[  chinatree   发表于  2011-07-29 19:41  ]

顶了

[  qingpengchen2011   发表于  2011-07-29 20:43  ]

呵呵~谢咯

[  游客   发表于  2011-08-02 17:36  ]

恩,这个地方十分适合学习。

[  qingpengchen2011   发表于  2011-08-03 14:47  ]

~嗯~呵

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码