|
主题 : : 课程设计一出错,请高人指点指点 [待解决] |
回复[ 2次 ]
点击[ 198次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-12-25 02:56 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-14 19:20 |
assume cs:code,ds:data,ss:stack
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
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
dw 0,0
data ends
stack segment
dw 16 dup(0)
stack ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,stack
mov ss,ax
mov sp,32
mov ax,0b800h
mov es,ax
mov bx,160
mov cx,21
s:push cx
mov cx,4
mov di,1
s1:mov al,[si]
mov es:[bx+di],al
mov es:[bx+di+1],7
inc si
add di,2
loop s1
add bx,160
pop cx
loop s
mov cx,21
mov bx,30
s2:mov ax,[si]
mov dx,[si+2]
add si,4
push si
mov si,210
call dtoc
push cx
mov cl,7
mov dx,bx
call show
inc bh
pop cx
pop si
loop s2
mov bx,60
mov cx,21
s3:mov ax,[si]
mov dx,0
add si,2
push si
mov si,210
call dtoc
push cx
mov cl,7
mov dx,bx
call show
inc bh
pop cx
pop si
loop s3
mov ax,4c00h
int 21h
dtoc: push bx
push cx
push si
push dx
mov bx,0
dtoc_s:mov cx,10
call divdw
jcxz dtoc_ok
push cx
inc bx
jmp dtoc_s
dtoc_ok:mov cx,bx
dtoc_s1:pop [si]
inc si
loop dtoc_s1
mov [si],0
push dx
push si
push cx
push bx
ret
divdw:push bx
mov bx,ax
mov ax,dx
mov dx,0
div cx
push ax
mov ax,bx
div cx
mov cx,dx
pop dx
pop bx
ret
show:push dx
push es
push ax
push si
push di
push cx
add dl,dl
mov al,dh
mov dh,160
mul dh
mov dh,0
add dx,dx
add ax,dx
mov di,ax
mov ax,0b800h
mov es,ax
mov al,cl
show_s:mov cl,[si]
mov ch,0
jcxz show_ok
mov byte ptr es:[di],cl
mov byte ptr es:[di+1],al
inc si
add di,2
jmp short show_s
show_ok:pop cx
pop di
pop si
pop ax
pop dx
pop es
ret
code ends
end start
运行时,那个框子一闪就没了
求助高人啊 | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-12-25 14:34 ]
[引用]
[回复]
[ top ] | |
荣誉值:337
信誉值:0
注册日期:2008-01-01 17:48 |
运行时,那个框子一闪就没了
--------------
你程序还有编译错误呢。
mov es:[bx+di+1],7
mov [si],0
=================
a.ASM(34): error A2035: Operand must have size
a.ASM(94): error A2035: Operand must have size
50382 + 450578 Bytes symbol space free
0 Warning Errors
2 Severe Errors | | |
|
|
|
|
[第2楼]
[ 回复时间:2009-12-26 00:46 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-14 19:20 |
3Q了,我还没看出来呢,呵呵
这是我改的程序
ok了
assume cs:code,ds:data,ss:stack
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
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
dd 0,0
data ends
stack segment
dw 16 dup(0)
stack ends
code segment
start:mov ax,data
mov ds,ax
mov si,0
mov ax,stack
mov ss,ax
mov sp,32
mov ax,0b800h
mov es,ax
mov bx,160
mov cx,21
s:push cx
mov cx,4
mov di,2
s1:mov al,[si]
mov es:[bx+di],al
mov es:[bx+di+1],7
inc si
add di,2
loop s1
add bx,160
pop cx
loop s
mov bl,8
mov bh,1
mov cx,21
s2:mov ax,[si]
mov dx,[si+2]
push si
mov si,210
call dtoc
mov dx,bx
push cx
mov cl,7
call show
pop cx
pop si
add si,4
inc bh
loop s2
mov bl,16
mov bh,1
mov cx,21
s3:mov ax,[si]
mov dx,0
push si
mov si,210
call dtoc
mov dx,bx
push cx
mov cl,7
call show
pop cx
pop si
add si,2
inc bh
loop s3
mov si,84
mov di,168
mov cx,21
mov bh,1
mov bl,24
s4:push cx
mov ax,[si]
mov dx,[si+2]
mov cx,[di]
call divdw
push si
mov si,210
call dtoc
mov dx,bx
mov cl,7
call show
pop si
add si,4
add di,2
inc bh
pop cx
loop s4
mov ax,4c00h
int 21h
dtoc:push bx
push cx
push si
push ax
push dx
mov bx,0
dtoc_s:mov cx,10
call divdw
add cx,30h
push cx
inc bx
mov cx,ax
jcxz dtoc_ok
jmp dtoc_s
dtoc_ok:mov cx,bx
dtoc_s1:pop bx
mov [si],bl
inc si
loop dtoc_s1
mov byte ptr [si],0
pop dx
pop ax
pop si
pop cx
pop bx
ret
divdw:push bx
mov bx,ax
mov ax,dx
mov dx,0
div cx
push ax
mov ax,bx
div cx
mov cx,dx
pop dx
pop bx
ret
show:push dx
push es
push ax
push si
push di
push cx
add dl,dl
mov al,dh
mov dh,160
mul dh
mov dh,0
add dx,dx
add ax,dx
mov di,ax
mov ax,0b800h
mov es,ax
mov al,cl
show_s:mov cl,[si]
mov ch,0
jcxz show_ok
mov byte ptr es:[di],cl
mov byte ptr es:[di+1],al
inc si
add di,2
jmp short show_s
show_ok:pop cx
pop di
pop si
pop ax
pop dx
pop es
ret
code ends
end start | | |
|