帮我详细解说下这个汇编语言。。(交通灯的)
用到8255A来设置(大学老师出的题目,实验的详细要求可以到[url]http://www.[/url]去看下)
1、十字路口交通灯的变化规律要求
(1)上面路口的绿灯,下面路口的红灯同时亮30秒左右。
(2)上面路口的黄灯闪烁若干次,同时下面路口红灯继续亮。
(3)上面路口的红灯,下面路口的绿灯同时亮30秒左右。
(4)上面路口的红灯继续亮,同时下面路口的黄灯闪烁若干次。
(5)转(1)重复。
2、清楚每个端口的输入输出操作、工作方式等正确书写控制字。
实验箱说明:通用片选地址见下述:
CS0:? 04A0H-04AFH? 偶地址有效、实验程序I/0口地址
CS1:? 04B0H-04BFH? 偶地址有效、实验程序I/0口地址
CS2:? 04C0H-04CFH? 偶地址有效、实验程序I/0口地址
CS3:? 04D0H-04DFH? 偶地址有效、实验程序I/0口地址
*只是低八位有效。例如:IN? AX,DX;OUT? DX,AX; IN? AL,DX(只用到低八位,高八位无效。也就是说IN AX,DX等价于IN AL,DX)
已经得到了的汇编程序如下:
ASSUME CS:CODE
CODE SEGMENT PUBLIC
ORG 100H
START:
MOV AX,04A6H
MOV DX,AX
MOV AL,10000000B
OUT DX,AL
LOOP1:
MOV DX,04A0H
MOV AL,00100001B
OUT DX,AL
CALL DELAY2
MOV CX,3H
LOOP2:
MOV AL,00001001B
OUT DX,AL
CALL DELAY1
MOV AL,00000001B
OUT DX,AL
CALL DELAY1
LOOP LOOP2
MOV AL,00010010B
CALL DELAY2
MOV CX,3H
LOOP3:
MOV AL,00000110B
OUT DX,AL
CALL DELAY1
MOV AL,00000010B
OUT DX,AL
CALL DELAY1
LOOP LOOP3
JMP LOOP1
DELAY1 PROC NEAR
PUSH CX
MOV CX,8000H
CCC:
LOOP CCC
POP CX
RET
DELAY1 ENDP
DELAY2 PROC NEAR
PUSH AX
PUSH CX
MOV CX,0030
UUU:CALL DELAY1
LOOP UUU
POP CX
POP CX
POP AX
RET
DELAY2 ENDP
CODE ENDS
END START
帮我详细解说下这个汇编语言的每一句话是做什么的,并且我们为什么要这样写???让我彻底明白这个实验。
感激不尽~~即便不会也请帮我顶下~~
再次谢谢
[[italic] 本帖最后由 forshine 于 2007-12-13 17:11 编辑 [/italic]]