?? 6-int10.asm
字號:
TITLE TEST INT 10H
.MODEL SMALL
.CODE
MODE03 EQU 03H
SET_MODE EQU 00H
SET_CURSOR EQU 02H
WRITE_CHARACTER EQU 09H
READ_MODE EQU 0FH
READ_KEY EQU 00H
READ_STATUS EQU 01H
INT10 MACRO $AH,$AL
MOV AL,$AL
MOV AH,$AH
INT 10H
ENDM
INT16 MACRO $AH
MOV AH,$AH
INT 16H
ENDM
ORG 100H
START: JMP MAIN
STRING_MESS DB '4 Kinds of Graphics, Press CTRL+C to EXIT.'
STRING_LENGTH EQU $-STRING_MESS
CHAR DB 0DBH ;一塊顏色
MODE DB 0
MAIN: INT10 READ_MODE,0
MOV MODE,AL
INT10 SET_MODE,MODE03
;用來顯示提示
MOV BP,OFFSET STRING_MESS
MOV CX,STRING_LENGTH
MOV DX,020AH
MOV BH,00H
MOV AX,1300H
MOV BL,0FH ;屬性
INT 10H
MOV BH,00H
MOV DH,05H ;第5行
MOV DL,0AH ;第10列
SET_AGAIN: INT10 SET_CURSOR,0 ;豎著5->20(同一列) 再第二列豎著下來,直到31列
MOV BH,00H
MOV BL,01H ;在彩色模式下為蘭色
MOV CX,01H ;寫一遍
MOV AL,03H
INT10 WRITE_CHARACTER,CHAR
CALL DELAY
INC DH
CMP DH,14H ;顯示直到第20行
JL SET_AGAIN
MOV DH,05H
INC DL
CMP DL,1FH ;顯示直到第31列
JL SET_AGAIN
MOV DL,0AH ;從第10列重新循環顯示
ADD CHAR,01H ;加1,只顯示4中圖形
CMP CHAR,0DFH
JNZ CONTINUE
MOV CHAR,0DBH
CONTINUE: JMP SET_AGAIN
DELAY PROC
PUSH CX
MOV CX,0C00H ;等待C00次是否有鍵盤輸入
NEXT: NOP
INT16 READ_STATUS
JNZ STOP
LOOP NEXT
JMP NORMAL
STOP: INT16 READ_KEY
CMP AX,2E03H ;CTRL+C
JNZ NEXT
POP CX
MOV AL,MODE ;恢復顯示模式
MOV AH,0
INT 10H
INT 20H
NORMAL: POP CX
RET
DELAY ENDP
RET
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -