#2
wp2319572014-03-15 08:08
|
求大虾帮助
程序代码:
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
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 编辑 ]