⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 字符图形.asm

📁 汇编语言课程设计,字符图形程序,有源码和报告书
💻 ASM
字号:
data segment
	array1 db 0,1,2,3,4,5,6,7,8,9
	row db 0
	col db 0
	color db 0fh
	array2 db  'please pay attention:press "ESC" to exit & press "del" to clear screen','$'
	array3 db '      CHARACTER:','$'
	array4 db '      COLOR:','$'
data ends
prognam segment
	assume cs:prognam,ds:data
main proc far
start:
	push ds
	mov ax,0
	push ax
	mov ax,data
	mov ds,ax
	lea dx,array2
	mov ah,9
	int 21h
	mov row,1
	mov col,24
	mov bx,26
l0:
	call reset
	mov al,7ch
	mov bh,0
	mov cx,1
	mov ah,0ah
	int 10h	
    inc row
	dec bx
	jnz l0
	mov row,2
	mov col,0
	mov di,0
	call reset
	lea dx,array3
	mov ah,9
	int 21h
	mov row,3
	mov col,0	
l1:
	call reset
	mov ax,di
	add al,30h
	mov bh,0
	mov cx,1
	mov ah,0ah
	int 10h
	inc col
	call reset
	mov bh,0
	mov cx,1
	mov ah,0ah
	mov al,array1[di]
	int 10h
	inc di
	cmp di,9
	ja l2
	add col,6
	cmp col,22
	jb l1
	add row,2
	mov col,0
	JMP l1
l2 :
	add row,4
	mov col,0
	call reset
	lea dx,array4
	mov ah,9
	int 21h
	inc row
	mov col,0
	mov di,1
l3: 
	call reset
	mov bx,di
	add bl,60h
	mov bh,0
	mov cx,1
	mov ah,0ah
	mov al,bl
	int 10h
	inc col
	call reset
	sub bl,60h
	mov bh,0
	mov cx,1
	mov ah,9
	mov al,0dbh
	int 10h
	inc di
	cmp di,9
	ja l4
	add col,6
	cmp col,22
	jb l3
	add row,2
	mov col,0
	JMP l3	
l4:
	mov row,1
	mov col,26
	call reset
draw:
	mov ah,0
	int 16h                  
	cmp ah,48h               
	je up                   
	cmp ah,50h
	je down
	cmp ah,4dh
	je right
	cmp ah,4bh
	je left
	cmp ah,53h
	je l5
	cmp ah,01h                
	jnz num
	ret
l5: 
	call clear
	mov row,1
	mov col,26
	call reset
	jmp draw
num:
	cmp al,30h
	jnb l6
	jmp draw
l6:
	cmp al,39h
	ja l7
	and ax,00ffh
	sub ax,30h
	mov di,ax
	mov al,array1[di]
	mov bh,0
	mov cx,1
	mov bl,color
	mov ah,09h	
	int 10h
	jmp draw
l7:
	cmp al,61h
	jb l8
	cmp al,69h
	ja l8
	sub al,60h
	mov color,al
l8:
	jmp draw
up: 
    dec row
    jz  up1
	jmp l9              
up1:
	inc row
	jmp l9
down:
	inc row
	cmp row,25
	ja  down1
	jmp l9
down1:
	dec row
	jmp l9
left:
	dec col
	cmp col,26
	jb  left1
	jmp l9
left1:
	inc col
	jmp l9
right:
	inc col
	cmp col,78
	ja right1
	jmp l9
right1:
	dec col
l9:   
	call reset
	jmp draw	
main endp	
reset proc near
   mov ah,2
   mov bh,0                
   mov dh,row
   mov dl,col
   int 10h
   ret
reset endp
clear proc near
     push  ax
     push  bx
     push  cx
     push  dx
     mov   ah,6
     mov   al,0
     mov   ch,1
     mov   cl,26
     mov   dh,25
     mov   dl,79
     mov   bh,7
     int   10h
     pop   dx
     pop   cx
     pop   bx
     pop   ax
     ret
clear endp
prognam ends
end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -