You are on page 1of 3

CODE SEGMENT

ASSUME CS:CODE,DS:CODE,ES:CODE,SS:CODE

PPIC_C EQU 1FH

PPIC EQU 1DH

PPIB EQU 1BH

PPIA EQU 19H

ORG 1000H

MOV AL,10000000B

OUT PPIC_C,AL

MOV AL,00000000B

OUT PPIC,AL

COUNTDOWN2:

MOV SI,OFFSET DATA1

COUNTDOWN1:

MOV AL,BYTE PTR CS:[SI]

OUT PPIA,AL

CALL TIMER

CALL C_ROTATION

JE COUNTDOWN2

JE LEDFUNC1

BACKTRACK:

MOV AL,00000000B

OUT PPIB,AL ;LED OFF


INC SI

JMP COUNTDOWN1

TIMER:

MOV CX,0

TIMER1:

NOP

LOOP TIMER1

RET

C_ROTATION:

PUSH AX

MOV AL,11111110B ;A

OUT PPIA,AL

CALL TIMER

R1:

OUT PPIA,AL

CALL TIMER

ROR AL,1

RET

LEDFUNC1:

CALL TIMER

MOV BX,OFFSET DATA2

JMP LEDFUNC2

LEDFUNC3:
INC BX

LEDFUNC2:

MOV AL,BYTE PTR ES:[BX]

OUT PPIB,AL

CALL TIMER

JNE LEDFUNC3

JMP BACKTRACK

DATA1:

DB 10001000B ;A

DB 10000000B ;B

DB 10001110B ;F

DATA2:

DB 00000010B ;B

DB 00000100B ;C

CODE ENDS

END

You might also like