51单片机疑难程序

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:13:10
ORG 0000H

START: MOV R0,#33H
AJMP FIRST

SECOND: MOV R1,#22H
HERE: LJMP HERE

ORG 0600H
FIRST: MOV R2,#01H
RET
;*********************************
ORG 0033H
THREE: MOV R3,#55H
LJMP 0000H
END
这个程序的流程是什么?哪位高手可以帮忙解决一下

ORG 0000H

START: MOV R0,#33H ;程序从start开始走
AJMP FIRST ;跳到标号FIRST的位置

SECOND: MOV R1,#22H ;
HERE: LJMP HERE ;跳到THere处

ORG 0600H
FIRST: MOV R2,#01H ;传立即数
RET ;子程序返回到second
;*********************************
ORG 0033H
THREE: MOV R3,#55H
LJMP 0000H ;返回第一条指令
END

ORG 0000H ;代码开始由0000H处存放.

START: MOV R0,#33H ;把33H送入R0寄存器.
AJMP FIRST ;这里是调用子程序,不能用AJMP而要用ACALL,调用FIRST.

SECOND: MOV R1,#22H ;把22H送入R1寄存器.
HERE: LJMP HERE ;反复跳转到当前位置,不往下执行程序.

ORG 0600H ;代码开始由0600H处存放.
FIRST: MOV R2,#01H ;把01H送入R2寄存器.
RET ;子程序返回,执行ACALL FIRST以下程序.
;*********************************
ORG 0033H ;代码开始由0033H处存放.
THREE: MOV R3,#55H ;把55H送入R3寄存器.
LJMP 0000H ;跳回0000H,重新执行以上程序.
END
这个程序就是给R0到R2三个寄存器写数,THREE语句没有执行.