STACK SEGMENT STACK
DW 40 DUP(?)
TOP LABEL WORD
STACK ENDS
DATA SEGMENT
STRING DB "Press any key to stop!$"
DATA ENDS
CODE SEGMENT
ASSUME SS:STACK
DS:DATA
CS:CODE
START:
MOV AX
DATA
MOV DS
AX
MOV AX
STACK
MOV SS
AX
LEA SP
TOP
MOV AX
600
MOV BH
7
MOV CX
0
MOV DX
184
INT 10H
MOV AH
2
MOV BX
7
MOV DX
55
INT 10H
LEA DX
STRING
MOV AH
9
INT 21H
STARTA:
MOV DX
21
MOV AL
10000000
OUT DX
AL
MOV DX
21
MOV AL
1111
OUT DX
AL
MOV BX
900
CALL FAR PTR DELAY
MOV AL
10100101
OUT DX
AL
MOV BX
900
CALL FAR PTR DELAY
MOV AL
11110101
OUT DX
AL
MOV DX
219
MOV AH
8
MOV AL
10100000
OUT DX
AL
MOV BX
400
CALL FAR PTR DELAY
MOV BX
400
MOV AL
11110000
OUT DX
AL
CALL FAR PTR DELAY
DEC AH
CMP AH
0
JNE LOOPA
MOV DX
21
MOV AL
1011010
OUT DX
AL
MOV BX
900
CALL FAR PTR DELAY
MOV AL
11111010
OUT DX
AL
MOV AH
8
MOV AL
1010000
OUT DX
AL
MOV BX
400
CALL FAR PTR DELAY
MOV BX
400
MOV AL
11110000
OUT DX
AL
CALL FAR PTR DELAY
DEC AH
CMP AH
0
JNE LOOPB
MOV AH
1
INT 16H
JNE DONE
JMP STARTA
DONE:
MOV AH
4
INT 21H
CODE ENDS
CODE1 SEGMENT
ASSUME CS:CODE1
DELAY PROC FAR
AGAIN:MOV CX
28000
DLOOP
DEC BX
CMP BX
0
JNE AGAIN
RET
DELAY ENDP
CODE1 ENDS
END START
(出处:互联网)

