📄 gg502.asm
字号:
;gg.asm
;for template<8086>
;2005-05
;p_Sa
data SEGMENT
BUF DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88h,83h,0c6h,0a1h,86h,09h;
DAT DB 100h DUP(0)
PA EQU 280h
PB EQU 281h
PC EQU 282h
PCTL EQU 283h
oOOo EQU 2A0h
data ENDS
stack0 SEGMENT para stack
DW 20h DUP(0)
stack0 ENDS
coseg SEGMENT
ASSUME CS:coseg,DS:data,SS:stack0
start: MOV AX, data
MOV DS, AX
;================MOV-DS-AX==============
MOV AL, 10000000b
MOV DX, PCTL
OUT DX, AL
MOV CX, 100h
LEA BX, DAT
l0:MOV DX, oOOo
MOV AL, 0
OUT DX, AL
CALL delay
IN AL, DX
MOV [BX], AL
INC BX
LOOP l0
MOV DX, PA
MOV AL, 0feh ;pc0,low
OUT DX, AL
MOV DX, PB
MOV AL,[BX]
AND AL, 0fh ;low
LEA SI, BUF
MOV AH, 0
ADD SI, AX
MOV AL, [SI]
OUT DX, AL
CALL delay
MOV DX, PC
MOV AL, 0fdh ;pc1,high
OUT DX, AL
MOV DX, PB
MOV AL, [BX]
AND AL, 0f0h ;high
PUSH CX
MOV CL, 4
ROL AL, CL
POP CX
LEA SI, BUF
MOV AH, 0
ADD SI, AX
MOV AL, [SI]
OUT DX, AL
CALL delay
MOV CX, 100h
LEA SI, DAT
l1:MOV BL, [SI]
CALL show
MOV DL, ' '
MOV AH, 2
INT 21h
INC SI
LOOP l1
;================INT-21H================
MOV AH, 4ch
INT 21h
delay PROC
PUSH CX
MOV CX, 0f000h
ys:NOP
LOOP ys
POP CX
RET
delay ENDP
show PROC
PUSH CX
MOV CH, 2
rotate:MOV CL, 4
ROL BL, CL
MOV AL, BL
AND AL, 0fh
ADD AL, 30h
CMP AL, 3ah
JB princh
ADD AL, 7h
princh:MOV DL, AL
MOV AH, 02h
INT 21h
DEC CH
JNZ rotate
POP CX
RET
show ENDP
coseg ENDS
END start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -