CE262 Microprocessor System Engineering W5 Lab
Lab 5
- Watch videos entitled “Introduction” and “Procedures”
- Using the microprocessor simulator, open the program 06proc.asm.
- Step through its execution to understand its current operation.
- Modify the traffic light program from Module 4 to utilize the code in 06proc.asm to establish a realistic time delay.
- Include all of the following in a Word document entitled “Lab5_StudentID”. Where your student id is substituted in the file name.
- A screenshot of the modified assembly code
- A few screenshots that show the traffic lights on Port 1 as the program is stepped through
- Upload file “Lab5_StudentID”.
DIRECTIONS:
Modify the traffic light program from Module 4 (below #1) to utilize the code in 06proc.asm (below #2) to establish a realistic time delay.
Module 4 traffic light program:
CLO ; close unwanted windows
start:
MOV BL,10 ; START BL REGISTER AT 10
; TURN OFF ALL TRAFFIC LIGHTS
MOV AL,10 ; COPY 00000000 INTO THE AL REGISTER
OUT 01 ; SEND AL TO PORT ON
MOV BL,0A ; BL=TEN
LOOP:
; TURN RED LIGHTS ON
MOV AL,90 ; COPY 10010000 INTO THE AL REGISTER
OUT 01 ; SEND AL TO PORT ONE
MOV AL,10 ; DELAY
; TURN ON AMBER LIGHTS
MOV AL,48 ; COPY 01001000 INTO THE AL REGISTER
OUT 01 ; SEND AL TO PORT ONE
MOV AL,10 ; DELAY
; TURN ON GREEN LIGHTS
MOV AL,24 ; COPY 00100100 INTO AL REGISTER
OUT 01 ; SEND AL TO PORT ONE
MOV AL,10 ; DELAY
DEC BL ; SUBTRACT ONE FROM BL
JNZ LOOP ; JUMP BACK TO LOOP IF BL WAS NOT ZERO
END ; PROGRAM ENDS
06PROC.ASM:
; When the procedure terminates, the CPU registers are
; restored to the same values that were present before
; the procedure was called. Push, Pop, Pushf and Popf
; are used to achieve this. In this example one procedure
; is re-used three times. This re-use is one of the main
; advantages of using procedures.
;—— The Main Program —————————————-
Start:
MOV AL,8 ; A short delay.
CALL 30 ; Call the procedure at address [30]
MOV AL,10 ; A middle sized delay.
CALL 30 ; Call the procedure at address [30]
MOV AL,20 ; A Longer delay.
CALL 30 ; Call the procedure at address [30]
JMP Start ; Jump back to the start.
; —– Time Delay Procedure Stored At Address [30] ————-
ORG 30 ; Generate machine code from address [30]
PUSH AL ; Save AL on the stack.
PUSHF ; Save the CPU flags on the stack.
Rep:
DEC AL ; Subtract one from AL.
JNZ REP ; Jump back to Rep if AL was not Zero.
POPF ; Restore the CPU flags from the stack.
POP AL ; Restore AL from the stack.
RET ; Return from the procedure.
; —————————————————————
END
; —————————————————————
TASK
15) Re-do the traffic lights program and use this procedure
to set up realistic time delays. 02tlight.asm
16) Re-do the text input and display program with procedures.
Use one procedure to input the text and one to display it.
; —————————————————————