📄 daada.asm
字号:
DATA SEGMENT
NUM DW ?
NUMX DW ?
NUMY DW ?
UFFER1 DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH,0DBH,0BBH,07BH,0E7H,0D7H,0B7H,77H
SUB1 DB ?
MESS DB 'ad,da made by zhangbiao 08003108 ',0DH,0AH,'hengzuobiao='
NUMXX DW ?
MESS2 DB 0DH,0AH,'zongzuobiao='
NUMYY DW ?
MESS3 DB ,'$'
SINBUF DB 128D,135D,141D,148D,155D,161D,167D,174D,180D,186D
DB 192D,198D,203D,209D,214D,219D,223D,227D,231D,235D
DB 239D,242D,245D,248D,250D,252D,253D,254D,255D
DB 255D,254D,253D,252D,250D,248D,245D,242D,239D
DB 235D,231D,227D,223D,219D,214D,209D,203D,198D,192D
DB 186D,180D,174D,167D,161D,155D,148D,141D,135D,128D
DB 121D,115D,108D,101D, 95D, 89D, 82D, 76D, 70D
DB 64D, 58D, 53D, 47D, 42D, 37D, 33D, 29D, 25D, 21D
DB 17D, 14D, 11D, 08D, 06D, 04D, 03D, 02D, 01D, 00D
DB 00D, 01D, 02D, 03D, 04D, 06D, 08D, 11D, 14D, 17D
DB 21D, 25D, 29D, 33D, 37D, 42D, 47D, 53D, 58D, 64D
DB 70D, 76D, 82D, 89D, 95D,101D,108D,115D,121D
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV ES,AX
LOOPER:
CALL CRTSET
LEA DX,MESS
MOV AH,09H
INT 21H
MOV CX,0
MOV NUMX,1
MOV NUMY,5
MOV DL,0FFH
MOV AH,08H
INT 21H
CMP AL,00H
JE LOOPER
MOV NUM,0
CALL CRTSET
CMP AL,31H
JZ IS44
CMP AL,35H
JE QUIT55
JMP LOOPER
LOOPER03: JMP LOOPER
IS44: JMP IS4 ;THE CODE IS TOO LONG
QUIT55: JMP QUIT5
QUIT5: JMP QUIT0
IS4:
MOV NUM,0
CALL EDITNUMBER
PUSH AX ;changde number into ascii
MOV AX,NUMX
ADD AX,30H
MOV NUMXX,AX
MOV AX,NUMY
ADD AX,30H
MOV NUMYY,AX
POP AX
CALL CRTSET
LEA DX,MESS
MOV AH,09H
INT 21H
JMP IS41
IS42: MOV CX,00H
IS41:
; MOV AH,0BH
; INT 21H
; CMP AL,0FFH
; JE LOOPER
CMP NUM, 630
JG IS4
MOV SI,CX
MOV AL,SINBUF[SI]
MOV AH,0 ;ax=zongzuobiao
MOV BX,NUMY
MUL BL
MOV BL,10
DIV BL
MOV DX,29CH
OUT DX,AL
CALL ADCDIS
CALL DELAY1
INC CX
CMP CX,116
JZ IS42
JMP IS41
QUIT0:
MOV AH,4CH
INT 21H
LOOPER00: JMP LOOPER
EDITNUMBER PROC NEAR
; MOV DX,298H
; OUT DX,AL
; MOV DX,298H
; IN AL,DX
; CMP AL,1H
; JB NUMX1
; CMP AL,11H
; JB NUMX2
; CMP AL,33H
; JB NUMX3
; CMP AL,44H
; JB NUMX4
; CMP AL,55H
; JB NUMX5
; CMP AL,0B9H
; JB NUMX6
; MOV NUMX,7
;; RET
; NUMX1:
; MOV NUMX,1
; RET
; NUMX2:
; MOV NUMX,2
; RET
; NUMX3:
; MOV NUMX,3
; RET
; NUMX4:
; MOV NUMX,4
; RET
; NUMX5:
; MOV NUMX,5
; RET
; NUMX6:
; MOV NUMX,6
; RET
;---------------------------
CALL READ
CMP SUB1,0EEH
JE INCNUMX
CMP SUB1,0DEH
JE DECNUMX
CMP SUB1,0BEH
JE INCNUMY
CMP SUB1,7EH
JE DECNUMY
MOV DL,0FFH
MOV AH,06H
INT 21H
CMP AL,'a'
JE INCNUMX
CMP AL,'b'
JE DECNUMX
CMP AL,'c'
JE INCNUMY
CMP AL,'d'
JE DECNUMY
CMP AL,35H
JE LOOPER00
RET
INCNUMX:
INC NUMX
CMP NUMX,9
JNB TOOBIG
RET
DECNUMX:
DEC NUMX
CMP NUMX,0
JNA TOOSMALL
RET
INCNUMY:
INC NUMY
CMP NUMY,10
JNB TOOHIGH
RET
DECNUMY:
DEC NUMY
CMP NUMY,1
JB TOOLOW
RET
TOOSMALL: MOV NUMX,1
RET
TOOHIGH: MOV NUMY,10
RET
TOOLOW: MOV NUMY,1
RET
TOOBIG: MOV NUMX,9
RET
EDITNUMBER ENDP
EDITNUMBER2 PROC NEAR
EDITNUMBER2 ENDP
DELAY2 PROC NEAR
PUSH CX
MOV CX,0F00H
SUBER: DEC CX
LOOP SUBER
POP CX
RET
DELAY2 ENDP
DELAY1 PROC NEAR
PUSH AX
PUSH CX
MOV CX,5H ;also can be change to test time
DL21: CALL DELAY2
LOOP DL21
POP CX
POP AX
RET
DELAY1 ENDP
CRTSET PROC NEAR
PUSH AX
MOV AH,0
MOV AL,06H
INT 10H
POP AX
RET
CRTSET ENDP
ADCDIS PROC NEAR
S12: PUSH DX
PUSH CX
PUSH AX
PUSH BX
CALL DELAY1
XOR AH,AH
MOV DL,160
MUL DL
MOV DL,255
DIV DL
XOR AH,AH
MOV DX,AX
MOV AX,160
SUB AX,DX
ADD AX,20
MOV DX,AX
MOV AX,NUM
MOV BX,AX
MOV CX,BX
MOV AH,0CH
MOV AL,1
INT 10H
ADD BX,NUMX
MOV NUM,BX
CMP BX,640
JNZ DISEND
MOV BX,00H
MOV NUM,BX
DISEND: POP BX
POP AX
POP CX
POP DX
RET
ADCDIS ENDP
READ PROC NEAR ;read little keyborad
PUSH AX
PUSH DX
PUSH CX
MOV DX,283H
MOV AL,10010011B
OUT DX,AL
MOV DX,282H
MOV AL,0H
OUT DX,AL
MOV DX,282H
IN AL,DX
AND AL,0FH
CMP AL,0FH
JZ QUITREADKEYBORAD
CALL DELAY1
IN AL,DX
AND AL,0FH
CMP AL,0FH
JZ QUITREADKEYBORAD
MOV CL,AL
MOV DX,283H
MOV AL,10011010B
OUT DX,AL
MOV DX,282H
MOV AL,0H
OUT DX,AL
MOV DX,282H
IN AL,DX
AND AL,0F0H
ADD CL,AL
MOV SUB1,CL
JMP ALREADYREADKEYBORAD
QUITREADKEYBORAD: MOV SUB1,0
ALREADYREADKEYBORAD: POP CX
POP DX
POP AX
RET
READ ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -