+ -
当前位置:首页 → 问答吧 → 请教霓虹灯的程序流程图,在线等,着急 1

请教霓虹灯的程序流程图,在线等,着急 1

时间:2011-01-15

来源:互联网

请问高手能不能帮我将下面的程序加上注释或者画出流程图也可以,谢谢啦!
题目:采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示程序,由@及*字符相间,从下到上由三角型变化成矩形。按Q退出程序。
程序:
 data_seg segment
  star2 db 26
  db 40h,0bh,0,0
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  db 40h,0bh,-1,3
  db 02ah,0bh,0,-1
  star3 db 26
  db 40h,0bh,0,0
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
  db 40h,0bh,-1,-3
  db 02ah,0bh,0,1
 char_cnt dw ?
 pointer dw ?
 line_on db ?
 col_on db ?
 char_cnt2 dw ?
 pointer2 dw ?
 line_on2 db ?
 col_on2 db ?
 char dw ?
 col db ?
 col0 db ?
 col00 db ?
 col01 db ?
 count db ?
 count0 db ?
 count1 db ?
 count2 db ?
 char0 db ?
 char1 db ?
 char01 db ?
 char2 db ?
 line1 db ?
 col1 db ?
 pot1 dw ?
 line2 db ?
 col2 db ?
 pot2 dw ?
 count_cx db ?
 data_seg ends
 ;---------------------------------------
 code_seg segment
  assume cs:code_seg,ds:data_seg
 main proc far
  push ds
  sub ax,ax
  sub cx,cx
  push ax
  push cx
  mov ax,data_seg
  mov ds,ax

  mov col,2
  mov col0,2
  mov col01,2
  mov char0,2
  mov char01,2
  mov count,1
  mov char1,1
  mov char2,55
  mov count0,2
  mov count1,2
  mov count_cx,2
again:  
  lea di,star2
  mov dh,16
  mov dl,30
  call move_shape1
  lea di,star3
  mov dh,16
  mov dl,30
  call move_shape2
  dec count_cx
  call must_2
  pop cx
  ret
 main endp
 ;----------------------------
 clear_screen proc near
  push ax
  push bx
  push cx
  push dx
  mov ah,6
  mov al,0
  mov ch,0
  mov cl,0
  mov dh,24
  mov dl,79
  mov bh,7
  int 10h
  pop dx
  pop cx
  pop bx
  pop ax
  ret
 clear_screen endp
;----------------------------------------
 move_shape1 proc near
  push ax
  push bx
  push cx
  push dx
  push di
  mov ah,0fh
  int 10h
  sub ch,ch
  mov cl,[di]
  inc di
  mov char_cnt,cx
  mov pointer,di
  mov line_on,dh
  mov col_on,dl
  mov char,cx
  pop di
  pop dx
  pop cx
  pop bx  
  pop ax
  ret
 move_shape1 endp
 ;----------------------------
 move_shape2 proc near
  push ax
  push bx
  push cx
  push dx
  push di
  mov ah,0fh
  int 10h
  sub ch,ch
  mov cl,[di]
  inc di
  mov char_cnt2,cx
  mov pointer2,di
  mov line_on2,dh
  mov col_on2,dl
  mov char,cx
  pop di
  pop dx
  pop cx
  pop bx  
  pop ax
  ret
 move_shape2 endp
;-----------------------------------------
 未完待续,看第二部分

作者: aaron_carter1   发布时间: 2011-01-15

帮顶了

作者: mic47   发布时间: 2011-01-15