的伪指令
LJMP MAIN ;跳到main语句,绕过中断入口
ORG 1000H ;设置程序存储区初始地址的伪指令
MAIN: MOV SP,#60H ;堆栈入口地址
MOV 81H,#50H ;把立即数50H送到数据区81H地址
MOV R0,#20H ;把立即数20H送到R0
MOV @R0,#45H ;寄存器间接寻址,把45H送到R0存的数据对应的地址
;就是20H这个地址
INC R0 ;R0加一
MOV @R0,#74H ;寄存器间接寻址,把74H送到R0存的数据对应的地址
;就是21H这个地址
MOV R1,#30H ;把30H送到R1
MOV @R1,#67H ;寄存器间接寻址,把67H送到R1存的数据对应的地址
;就是30H这个地址
INC R1 ;R1加一
MOV @R1,#28H ;寄存器间接寻址,把28H送到R1存的数据对应的地址
;就是31H这个地址
CLR C ;清除符号位
MOV R2,#02 ;把2送到R2
L2:ACALL L1 ;调子函数L1
DEC R0 ;R0减一
DEC R1 ;R1减一
DJNZ R2,L2 ;如果R2减到0,就执行下一句,否则跳到L2
CLR A ;累加器清零
MOV ACC.0,C ;把符号位移到累加器的第零位
NOP ;延时一个周期
MOV @R0,A ;寄存器间接寻址,把A里的数据传送到R0对应的地址
L3: SJMP L3 ;死循环
L1: MOV A,@R0 ;寄存器间接寻址,把R0对应的地址
;里的数据传送到 A
ADDC A,@R1 ;把R1里存放的地址里的数据和A相加,再加进位位。
DA A ;十进制调整指令
MOV @R0,A ;寄存器间接寻址,把A里的数据传送到R0对应的地址
RET ; 子程序返回
END ;结束
ORG 0000H
LJMP MAIN
MAIN: MOV A,#15H
ADDC A,#24H
MOV P1,A ; 那个逗号是中文的,主要错在这。
SJMP $
RET ; 没有子程序,这里不要用RET,不过你的程序只到上一步。
END