📄 aaa.asm
字号:
MY8255_A EQU 0C860H
MY8255_B EQU 0C861H
MY8255_C EQU 0C862H
MY8255_M EQU 0C863H
DATAS SEGMENT
X DB ?
SPEED DB ?
CHOICE DB ?
MES DB 'WELCOME! $'
DATAS ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
MOV CX,0FFFFH
MOV DX,MY8255_M
MOV AL,82H ;b为输入a为输出
OUT DX,AL
MOV DX,OFFSET MES
MOV AH,09H
INT 21H
SUB AX,AX
A0: MOV DX,MY8255_B
IN AL,DX
MOV X,AL
MOV DX,MY8255_A
OUT DX,AL
;CALL DELAY
MOV AL,X
MOV SPEED,AL
MOV CHOICE,AL ;选项后四项为CHOICE
AND CHOICE,00001111B
AND AL,01110000B
MOV BL,AL
MOV AL,CHOICE
;求速度
ROL BL,1
AND X,10000000B
CMP X,10000000B ;最高位为1时左移
JNZ RIGHT
SUB CX,CX
MOV CL,SPEED
CMP CHOICE,1H
JZ CIRCUIT1
CMP CHOICE,3H
JZ CIRCUIT2
CMP CHOICE,7H
JZ CIRCUIT3
CMP CHOICE,15
JZ CIRCUIT4
CMP CHOICE ,12
JZ CIRCUIT5
JMP A0
RIGHT: SUB CX,CX
MOV CL,SPEED
CMP CHOICE,1H
JZ CIRCUIT1_R
CMP CHOICE,3H
JZ A3
CMP CHOICE,7H
JZ A4
CMP CHOICE,15
JZ A5
CMP CHOICE ,12
JZ A6
A1: JMP A0
A3: JMP CIRCUIT2_R
A4: JMP CIRCUIT3_R
A5: JMP CIRCUIT4_R
A6: JMP CIRCUIT5_R
CIRCUIT1: ROL AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,80H
JZ A1
JMP CIRCUIT1
CIRCUIT2: ROL AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,0C0H
JZ A1
JMP CIRCUIT2
CIRCUIT3: ROL AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,0E0H
JZ A1
JMP CIRCUIT3
CIRCUIT4: ROL AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,0F0H
JZ A1
JMP CIRCUIT4
CIRCUIT5: MOV AL,00H
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
MOV DX, MY8255_A
MOV AL,0FFH
OUT DX,AL
CALL DELAY
JZ A1
A2: JMP A1
CIRCUIT1_R:ROR AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,1H
JZ A2
JMP CIRCUIT1_R
CIRCUIT2_R:ROR AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,3H
JZ A2
JMP CIRCUIT2_R
CIRCUIT3_R:ROR AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,7H
JZ A2
JMP CIRCUIT3_R
CIRCUIT4_R: ROR AL,1
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
CMP AL,15
JZ A2
JMP CIRCUIT4_R
CIRCUIT5_R: MOV AL,00H
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
MOV AL,0FFH
MOV DX,MY8255_A
OUT DX,AL
CALL DELAY
JZ A2
MAIN ENDP
DELAY PROC NEAR
MOV CX,0FFFFH
D1:MOV DX,0FFFH
D2:DEC DX
JNZ D2
LOOP D1
RET
DELAY ENDP
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -