能不能帮我解释一下下面关于红绿灯的汇编设计到底是什么意思,第一个分号是什么意思?我刚学!谢谢:)

问题描述:

能不能帮我解释一下下面关于红绿灯的汇编设计到底是什么意思,第一个分号是什么意思?我刚学!谢谢:)
;FOR EAT598
CS273 EQU 0F200H
ORG 0000H
LJMP START
ORG 0040H
START:
MOV SP,#60H
LCALL STATUS0
CIRCLE: LCALL STATUS1
LCALL STATUS2
LCALL STATUS3
LCALL STATUS4
LJMP CIRCLE
STATUS0:
MOV DPTR,#CS273
MOV A,#0FH
MOVX @DPTR,A
MOV R2,#10
LCALL DELAY
RET
STATUS1:
MOV DPTR,#CS273
MOV A,#96H
MOVX @DPTR,A
MOV R2,#50
LCALL DELAY
RET
STATUS2:
MOV DPTR,#CS273
MOV R3,#03H
FLASH: MOV A,#9FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#96H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH
MOV A,#06H
MOVX @DPTR,A
MOV R2,#10
LCALL DELAY
RET
STATUS3:
MOV DPTR,#CS273
MOV A,#69H
MOVX @DPTR,A
MOV R2,#50
LCALL DELAY
RET
STATUS4:
MOV DPTR,#CS273
MOV R3,#03H
FLASH1: MOV A,#6FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#69H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#09H
MOVX @DPTR,A
MOV R2,#10
LCALL DELAY
 NOP
RET
DELAY:
PUSH 2
PUSH 1
PUSH 0
DELAY1: MOV 1,#00H
DELAY2: MOV 0,#0B2H
DJNZ 0,$
DJNZ 1,DELAY2
DJNZ 2,DELAY1
POP 0
POP 1
POP 2
RET
END
1个回答 分类:综合 2014-12-13

问题解答:

我来补答
;FOR EAT598 ;可能只是名称
CS273 EQU 0F200H ;定义
ORG 0000H ;开始,格式需要
LJMP START ;跳转到start
ORG 0040H ;从0040H开始
START:
MOV SP,#60H ;设置堆栈指针
LCALL STATUS0 ;跳转
CIRCLE: LCALL STATUS1 ;跳转
LCALL STATUS2 ;跳转
LCALL STATUS3 ;跳转
LCALL STATUS4 ;跳转
LJMP CIRCLE ;跳转
STATUS0:
MOV DPTR,#CS273 ;赋值DPTR
MOV A,#0FH ;赋值0f到A
MOVX @DPTR,A ;赋值A到DPTR地址
MOV R2,#10 ;赋值10到R2
LCALL DELAY ;调用延时子程序
RET ;子程序返回
STATUS1:
MOV DPTR,#CS273
MOV A,#96H
MOVX @DPTR,A
MOV R2,#50
LCALL DELAY
RET
STATUS2:
MOV DPTR,#CS273
MOV R3,#03H
FLASH: MOV A,#9FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#96H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH ;R3减一不等于0跳转FLASH
MOV A,#06H
MOVX @DPTR,A
MOV R2,#10
LCALL DELAY
RET
STATUS3:
MOV DPTR,#CS273
MOV A,#69H
MOVX @DPTR,A
MOV R2,#50
LCALL DELAY
RET
STATUS4:
MOV DPTR,#CS273
MOV R3,#03H
FLASH1: MOV A,#6FH
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
MOV A,#69H
MOVX @DPTR,A
MOV R2,#03H
LCALL DELAY
DJNZ R3,FLASH1
MOV A,#09H
MOVX @DPTR,A
MOV R2,#10
LCALL DELAY
 NOP ;空操作
RET
DELAY:
PUSH (R)2 ;堆栈入,分析应该是R2
PUSH (R) 1
PUSH (R)0
DELAY1: MOV (R)1,#00H
DELAY2: MOV (R)0,#0B2H
DJNZ (R)0,$ ;R0减一不等于0执行本操作
DJNZ (R)1,DELAY2
DJNZ (R)2,DELAY1
POP (R)0 ;堆栈出
POP (R) 1
POP (R)2
RET
END
 
 
展开全文阅读
剩余:2000
下一页:生物 酶