|
主题 : : SOS:课程设计一,百思不得其解的编译错误,求救求救 [已解决] |
回复[ 3次 ]
点击[ 570次 ] | |
荣誉值:12
信誉值:1
注册日期:2011-07-28 10:58 |
以下是我的程序
编译后显示:
2.asm(59): error A2009: Symbol not defined: DTOC
2.asm(74): error A2009: Symbol not defined: DTOC
2.asm(94): error A2009: Symbol not defined: DIVDW
2.asm(100): error A2009: Symbol not defined: DTOC
2.asm(120): error A2009: Symbol not defined: SHOW_STR
请各路高人解救
assume cs:code,ds:data,es:table
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
db '1984','1985','1986','1987','1988','1989','1990','1991','1992'
db '1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
dd 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dd 11542,14430,15257,17800
dd 21 dup (0)
data ends
table segment
db 840 dup (' ')
table ends
code segment
main:
mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov cx,21
;----------------
push cx
mov di,0
mov si,0
year:
mov ax,[di]
mov es:[si],ax
mov ax,[di+2]
mov es:[si+2],ax
add di,4
add si,40
loop year
pop cx
;----------------
push cx
mov di,84
mov si,10
salary:
call dtoc ;--------------------------------------<59>---------------------
add di,4
add si,40
loop salary
pop cx
;-------------------------
push cx
mov di,168
mov si,20
stuff:
call dtoc ;---------------------------------------<74>----------------
add di,4
add si,40
loop stuff
pop cx
;--------------------------
mov bx,84
mov di,252
mov si,30
average:
push cx
mov ax,[bx]
mov dx,[bx+2]
mov cx,[bx+84]
call divdw ;--------------------------------------------<94>---------------
mov [di],ax
mov [di+2],dx
pop cx
call dtoc ;--------------------------------------------<100>---------------
mov byte ptr es:[si+9],0
add di,4
add si,40
loop average
;--------------
mov cx,21
mov dh,0
mov bx,table
mov ds,bx
display:
mov si,0
mov dl,0
push cx
mov cx,0071h
call show_str ;------------------------------<120>---------------------
pop cx
add si,40
inc dh
loop display
;-------------
mov ax,4c00h
int 21h
code ends
end main
;--------------------------------------------------dtoc----------------------------
dtoc:
push ax
push si
push cx
push di
push dx
;------------
mov ax,[di]
mov dx,[di+2]
mov di,0
;------------
t:
mov cx,10
call divdw
add cx,30h
push cx
inc di
;-----------
mov cx,ax
jcxz judge_1
jmp short t
;-----------
judge_1:
mov cx,dx
jcxz move
jmp short t
;-----------------------------
move:
mov cx,di
;--------------
k:
pop ax
mov es:[si],al
inc si
loop k
;------------------
pop dx
pop di
pop cx
pop si
pop ax
ret
;------------------------------------------------------divdw-----------------------
divdw:
push bx
;-----------
push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax
;-------------
pop ax
div cx
;---------------
mov cx,dx
mov dx,bx
;-----------
pop bx
ret
;------------------------------------------------------------show_str------------------
show_str:
push es
push ax
push di
push dx
push si
push cx
;------------
e_s:
mov ax,0b800h
mov es,ax
;------------
pointer:
mov ah,0
mov al,0a0h
mul dh
mov dh,0
add dl,dl
add ax,dx
mov di,ax
;------------
mov ah,cl
mov ch,0
;-------------
s:
mov al,[si]
mov cl,al
jcxz stop
mov es:[di],ax
inc si
add di,2
jmp short s
;-------------
stop:
pop cx
pop si
pop dx
pop di
pop ax
pop es
ret | | |