. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验10 第2题 大家看一下对不  有没有优化的地方!  [待解决] 回复[ 7次 ]   点击[ 420次 ]  
donggs02
[帖 主]   [ 发表时间:2010-11-22 22:56 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-04-08 17:43
assume cs:code
code segment
        mov ax,4240
        mov dx,000FH
        mov cx,0AH
        call divdw
        mov ax,4c00H
        int 21H
divdw:        push bx
        push si
        mov bx,ax
        mov ax,dx
        sub dx,dx
        div cx
        mov si,ax
        mov ax,bx
        div cx
        mov cx,dx
        mov dx,si
        pop si
        pop bx
        ret
code ends
end
sempron
[第1楼]   [ 回复时间:2010-11-23 12:23 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-10-29 09:56
对不对你自己去验证一下不就知道了吗,同时还能锻炼自己的调试能力。
chenchaosx
[第2楼]   [ 回复时间:2010-12-11 19:47 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-12-04 20:54
除非CPU是楼主自己设计制造的
jiafangbai
[第3楼]   [ 回复时间:2010-12-13 11:24 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-10-29 23:22
整个子程序不知所云
donggs02
[第4楼]   [ 回复时间:2011-07-24 14:09 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-04-08 17:43
以解决
huameng
[第5楼]   [ 回复时间:2011-07-24 15:55 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2009-12-04 14:44
为什么动不动就叫别人看你写的程序呢,不明白,难道不可以把问题提炼出来问?这样的没有人愿意回答。
chinatree
[第6楼]   [ 回复时间:2011-07-24 18:07 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
有什么用?给用户提供了什么功能呀
youngjohn
[第7楼]   [ 回复时间:2011-08-02 21:34 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-08-02 21:27
我要说的是,楼主太懒:1.不愿意自己测试程序的正确性。2.写程序不加注释,还让别人帮你看,让人一头雾水。

回到程序,楼主的子程序写得是对的。但有几个小错误和一个不恰当的地方。错误1:mov ax,4240应该是mov ax,4240h。错误2:应该定义栈段,因为楼主用压栈的方法保存了子程序用的bx,si两个寄存器。不恰当的地方时,楼主应该在代码段开始处用start标号,结尾用end start,这样的编程习惯不容易带来编译中cs赋值错误。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved