?? yangquan.asm
字號:
data segment
car db 238 ;陽泉學院字符圖形表
DB 2ah,238,0,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
db 2ah,238,1,0
DB 2ah,238,-13,1
DB 2ah,238,0,1
DB 2ah,238,0,1
DB 2ah,238,0,1
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
db 2ah,238,1,0
DB 2ah,238,-4,-3
DB 2ah,238,0,1
DB 2ah,238,0,1
DB 2ah,238,4,-2
DB 2ah,238,0,1
DB 2ah,238,0,1
DB 2ah,238,0,3
DB 2ah,238,-1,0
DB 2ah,238,-1,0
DB 2ah,238,-1,0
DB 2ah,238,-1,0
DB 2ah,238,-1,0
DB 2ah,238,-1,0
DB 2ah,238,-1,0
DB 2ah,238,0,1
DB 2ah,238,0,1
DB 2ah,238,0,1
DB 2ah,238,0,1
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
DB 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,-4,-3
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,4,-2
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,-10,7
db 2ah,238,0,1
db 2ah,238,1,-3
db 2ah,238,0,1
db 2ah,238,1,-3
db 2ah,238,0,1
db 2ah,238,1,-1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,1,-8
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,-1,0
db 2ah,238,-1,0
db 2ah,238,-1,0
db 2ah,238,1,-7
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,3,-1
db 2ah,238,1,-4
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,1,-4
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,0,-2
db 2ah,238,1,1
db 2ah,238,-4,0
db 2ah,238,1,-1
db 2ah,238,1,-1
db 2ah,238,1,-1
db 2ah,238,1,-1
db 2ah,238,-4,6
db 2ah,238,1,1
db 2ah,238,1,1
db 2ah,238,1,1
db 2ah,238,1,1
db 2ah,238,-12,1
db 2ah,238,-2,1
db 2ah,238,1,0
db 2ah,238,0,1
db 2ah,238,-1,2
db 2ah,238,0,1
db 2ah,238,1,0
db 2ah,238,0,1
db 2ah,238,0,2
db 2ah,238,0,1
db 2ah,238,-1,0
db 2ah,238,0,1
db 2ah,238,3,-10
db 2ah,238,-1,0
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,1,0
db 2ah,238,1,-8
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,1,-1
db 2ah,238,1,-1
db 2ah,238,1,-1
db 2ah,238,1,-4
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,1,-5
db 2ah,238,1,1
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,-1
db 2ah,238,-1,-1
db 2ah,238,-13,8
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,-14,1
db 2ah,238,0,1
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,-4,-1
db 2ah,238,4,0
db 2ah,238,-8,5
db 2ah,238,0,1
db 2ah,238,1,0
db 2ah,238,0,1
db 2ah,238,2,-4
db 2ah,238,-1,0
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,1,0
db 2ah,238,1,-2
db 2ah,238,0,-1
db 2ah,238,0,-1
db 2ah,238,0,-1
db 2ah,238,2,-1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,0,1
db 2ah,238,1,-4
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,-1
db 2ah,238,1,-1
db 2ah,238,1,-1
db 2ah,238,-7,6
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,0
db 2ah,238,1,1
db 2ah,238,1,1
db 2ah,238,1,1
char_cnt dw ?
pointer dw ?
line_on db ?
col_on db ?
data ends
stack segment
db 2000 dup (0)
stack ends
code segment
assume cs:code,ds:data
main proc far
push ds
sub ax,ax
push ax
mov ax,data ;初始化DS
mov ds,ax
mov ah,0 ;設置300*200彩色圖形方式
mov al,3
int 10h
mov ah,0bh ;設置背景顏色
mov bh,0
mov bl,2
int 10h
mov ah,0bh ;設置彩色調板
mov bh,01
mov bl,00
int 10h
call clear_screen ;清屏
lea di,car ;di指向字符圖形表
mov dh,5 ;從第5行第5列位置開始
mov dl,5 ;顯示汽車
call move_shape
mov ah,01h ;從鍵盤輸入字符
int 21h
cmp al,0dh
je exit
exit:mov ah,4ch
int 21h
ret
main endp
clear_screen proc near ;清屏子程序
push ax ;保護寄存器
push bx
push cx
push dx
mov ah,6 ;屏幕上卷功能
mov al,6
mov ch,0 ;左上角行號
mov cl,0 ;左上角列號
mov dh,250 ;右下角行號
mov dl,200 ;右下角列號
mov bh,7 ;卷入行屬性
int 10h ;調用顯示功能
pop dx ;恢復寄存器
pop cx
pop bx
pop ax
ret ;返回主程序
clear_screen endp
move_shape proc near
push ax
push bx
push cx
push dx
push di
mov ah,0fh ;取當前顯示方式
int 10h
sub ch,ch ;清除寄存器CX的高字節
mov cl,[di] ;CL放循環次數
inc di ;di指向字符表的第一個字符
mov char_cnt,cx ;保存循環次數
mov pointer,di
mov line_on,dh
mov col_on,dl
plot_next:
add dh,[di+2] ;改變行列指針
add dl,[di+3]
cmp dl,150 ;出屏否?
jb mov_crsr
call erase
pop di
pop dx
pop cx
pop bx
pop ax
ret
mov_crsr:
mov ah,2 ;移動光標位置
int 10h
mov al,[di]
mov bl,[di+1] ;取字符值及屬性
push cx
mov cx,1
mov ah,09 ;顯示字符
int 10h
pop cx
add di,4 ;di指向下一個字符
loop plot_next
call dly_qrtr ;調用延時子程序
call erase ;調用擦除子程序
jmp short plot_next
move_shape endp
erase proc near ;擦除子程序
mov cx,char_cnt
mov di,pointer
mov dh,line_on
mov dl,col_on
erase_next:
add dh,[di+2]
add dl,[di+3]
mov ah,2
int 10h
mov al,[di]
mov bl,0
push cx
mov cx,1
mov ah,9
int 10h
pop cx
add di,4
loop erase_next
mov cx,char_cnt
mov di,pointer
mov dh,line_on
inc col_on
mov dl,col_on
ret
erase endp
dly_qrtr proc near ;延時子程序
push cx
push dx
mov dx,50000
d11:mov cx,8000
d12:loop d12
dec dx
jnz d11
pop dx
pop cx
ret
dly_qrtr endp
code ends
end main
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -