📄 07c.asm
字号:
DATA SEGMENT
ioport equ 0c000h-280h
ioport1 equ ioport+288h
ioport2 equ ioport+289h
ioport3 equ ioport+28ah
ioport4 equ ioport+28bh
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START PROC FAR
STT:PUSH DS
SUB AX,AX
PUSH AX
;==============================
MOV AX,DATA
MOV DS,AX
FORMAT: MOV DX,ioport4
MOV AL,80H ;CW=10000000
OUT DX,AL
;==============================
CONTROL:
;==============================
MOV DX,ioport3 ;(1)
MOV AL,00100100B
OUT DX,AL
MOV CX,3000
THIRTY1: CALL DELAY1S
LOOP THIRTY1
;==============================
MOV CX,5 ;(2)
FLASH1: MOV DX,ioport3
MOV AL,01000100B
OUT DX,AL
PUSH CX
MOV CX,50
AAAA: CALL DELAY1S
LOOP AAAA
POP CX
MOV DX,ioport3
MOV AL,00000100B
OUT DX,AL
PUSH CX
MOV CX,50
BBB: CALL DELAY1S
LOOP BBB
POP CX
LOOP FLASH1
;==============================
MOV DX,ioport3 ;(3)
MOV AL,10000001B
OUT DX,AL
MOV CX,3000
THIRTY2: CALL DELAY1S
LOOP THIRTY2
;==============================
MOV CX,5 ;(4)
FLASH2: MOV DX,ioport3
MOV AL,10000010B
OUT DX,AL
PUSH CX
MOV CX,50
CCC: CALL DELAY1S
LOOP CCC
POP CX
MOV DX,ioport3
MOV AL,10000000B
OUT DX,AL
PUSH CX
MOV CX,50
DDD: CALL DELAY1S
LOOP DDD
POP CX
LOOP FLASH2
;==============================
MOV AH,0BH
INT 21H
CMP AL,00H
JNE EXIT
JMP CONTROL
EXIT: MOV AH,4CH
INT 21H
;==============================
RET
START ENDP
DELAY1S PROC NEAR
PUSHF
PUSH BX
PUSH CX
MOV BX,3E8H
LP2: MOV CX,0BAH
LP1: PUSHF
POPF
LOOP LP1
DEC BX
JNZ LP2
POP CX
POP BX
POPF
RET
DELAY1S ENDP
CODE ENDS
END STT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -