📄 字符图形.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 + -