重写实验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 编辑 ]