. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->CALL和RET指令
主题 : :  课程设计一出错,请高人指点指点  [待解决] 回复[ 2次 ]   点击[ 200次 ]  
a3187744a
[帖 主] [ 发表时间:2009-12-25 02:56 ] 
荣誉值: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
运行时,那个框子一闪就没了
求助高人啊
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved