| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 494 人关注过本帖
标题:重写实验7 求大虾指点
取消只看楼主 加入收藏
e0a
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2014-2-23
结帖率:20%
收藏
已结贴  问题点数:20 回复次数:0 
重写实验7 求大虾指点
第3次写实验7  没有处理除法溢出   dd dw 数据不能正常显示  
求大虾帮助
程序代码:
assume cs:code

data segment
     db 21 dup ('1946')
     dd 21 dup (500)
     dw 21 dup (50)
data ends

table segment  
     db 21 dup ('year summ ne ?? ')
table ends

stack segment
     db 32 dup (0)
stack ends

code segment
start:

;初始化
                     mov ax,data
                     mov ds,ax
                     mov ax,table
                     mov es,ax
                     mov ax,stack
                     mov ss,ax
                     mov sp,32

                     mov ax,0
                     mov bx,0
                     mov dx,0
                     mov si,0                        ; 字符 地址
                     mov di,0                        ; table 地址
                     mov cx,20

                     call line

                    mov ax,4c00h
                    int 21h

;行循环

line:                                                ;子程序1
                    push cx
                    push si
                    push si
                    push si
                    mov cx,2

                    call far ptr year

                    add di,3
                    mov cx,2

                    pop si

                    call money                      ; 这个不能正常显示

                    pop si
                    add di,3                        ; <--- 指向  雇员数
                    mov bx,ds:[si+42]
                    mov es:[di],bx
                    add di,3                        ; <--- di 指向 人均收入

                    div bx                          ; <--- 进行除法  没有处理除法溢出 divide overflow   ax存商
                    mov es:[di],ax
                    add di,3                        ; <--- 指向下一行

                    pop si
                    add si,4



                    pop cx
                    loop line

year:                                               ; 子程序2

                    mov ax,ds:[si]
                    mov es:[di],ax
                    add si,2
                    add di,2
                    loop year

                    ret

money:                                              ; 子程序3

                    mov ax,ds:[si+21]
                    push ax
                    mov es:[di],ax
                    add si,2
                    add di,2
                    loop money

                    pop dx
                    pop ax                          ; dx 存高16位   ax 存低16位
                    ret                          



code ends
end start



[ 本帖最后由 e0a 于 2014-3-11 13:34 编辑 ]
2014-03-11 13:33
快速回复:重写实验7 求大虾指点
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018084 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved