?? motor.asm
字號:
CODE SEGMENT
ASSUME CS:CODE
DAPORT EQU 0060H ;da-out port
IOCPT EQU 0072H ;C port
IOCONPT EQU 0073H ;control port
CONTPORT EQU 00DFH
DATAPORT EQU 00DEH
DATA1 EQU 0500H
DATA2 EQU 0510H
DATA3 EQU 0518H
DATA4 EQU 0519H
START: CALL FORMAT
MOV AL,89H
MOV DX,IOCONPT
OUT DX,AL ;write control word
MOV DX,IOCPT
IN AL,DX ;read the condition of C port
DAOUT: MOV BYTE PTR DS:[DATA4],AL
CALL BCDCON
CALL CONVERS
CALL LEDDISP
MOV AL,BYTE PTR DS:[DATA4]
MOV DX,DAPORT
OUT DX,AL
READCPT: MOV DX,IOCPT
IN AL,DX
CMP AL,BYTE PTR DS:[DATA4]
JE READCPT
JMP DAOUT
FORMAT: MOV BX,0
MOV WORD PTR DS:[BX+DATA1],063FH
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],4F5BH
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],6D66H
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],077DH
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],6F7FH
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],7C77H
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],5E39H
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],7179H
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],003FH ;"SPEED 0"
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],5E00H
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],7979H
ADD BX,2
MOV WORD PTR DS:[BX+DATA1],6D73H
ADD BX,2
RET
LEDDISP: MOV AL,90H
MOV DX,CONTPORT
OUT DX,AL
MOV BYTE PTR DS:[DATA3],00H
LED1: CMP BYTE PTR DS:[DATA3],07H
JA LED2
MOV BL,DS:[DATA3]
MOV BH,0H
MOV AL,CS:[BX+DATA2]
MOV DX,DATAPORT
OUT DX,AL
ADD BYTE PTR DS:[DATA3],01H
JNZ LED1
LED2: RET
CONVERS1: MOV BH,0H
AND AX,0FH
MOV BL,AL
MOV AL,CS:[BX+DATA1]
RET
CONVERS: PUSH AX
CALL CONVERS1
MOV SI,DATA2
MOV DS:[SI],AL
INC SI
POP AX
MOV CL,4H
SHR AX,CL
PUSH AX
CALL CONVERS1
MOV DS:[SI],AL
INC SI
POP AX
MOV CL,4H
SHR AX,CL
CALL CONVERS1
MOV DS:[SI],AL
RET
BCDCON: AND AX,0FFH
MOV CX,AX
MOV AL,0
BCDCON1: ADD AL,1
DAA
JNC NEXT
ADD AH,1
NEXT: LOOP BCDCON1
RET
CODE ENDS
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -