ORG 0000H AJMP MAIN ORG 000BH AJMP ITP0 ORG 0030H MAIN: MOV DPTR,#TAB MOV TMOD,#05H MOV SP,#60H MOV TL0,#0FFH MOV TH0,#0FFH MOV 20H,#0 ;显示缓存单元清0,20H为个位,21H为十位 MOV 21H,#0 SETB ET0 SETB EA SETB TR0 HERE: ACALL DISP JNB F0,HERE CLR P2.7 CLR F0 AJMP HERE ;调用显示程序 ITP0: MOV TL0,#0FFH MOV TH0,#0FFH MOV A,20H ;显示个位单元加1 INC A MOV 20H,A CJNE A,#10,HERE2 MOV 20H,#0 MOV A,21H ;显示十位单元加1 INC A MOV 21H,A CJNE A,#5,HERE2 MOV 21H,#0 SETB F0 HERE2: RETI DISP: MOV A,20H ;显示程序 MOVC A,@A+DPTR SETB P2.6 CLR P2.5 MOV P0,A ACALL DELAY MOV A,21H MOVC A,@A+DPTR SETB P2.5 CLR P2.6 MOV P0,A ACALL DELAY RET DELAY: MOV R2,#40 ;延时程序 HER1: MOV R3,#125 HER: DJNZ R3,HER DJNZ R2,HER1 RET TAB: DB 30H,0FCH,0A2H,0A4H,6CH,25H,21H,0BCH,20H,24H ;共阴极段码 END
时间: 2023-06-01 12:05:16 浏览: 101
这段汇编代码的功能是跳转到不同的程序段执行。
ORG 0000H表示将代码的基地址设为0000H开始,AJMP MAIN表示跳转到标记为MAIN的程序段执行。
ORG 000BH表示将代码的基地址设为000BH开始,AJMP ITP0表示跳转到标记为ITP0的程序段执行。
ORG 0030H表示将代码的基地址设为0030H开始,MAIN:MOV DPTR表示将数据指针寄存器DPTR中的值设置为MAIN标记处的地址,该程序段的具体功能在MOV DPTR之后的指令中执行。
相关问题
51单片机中 ORG 0000H AJMP main 是什么意思
在51单片机中,ORG 0000H用来指定程序的起始地址,也就是告诉编译器将程序存储在哪个地址处。而AJMP main则是一条跳转指令,它的作用是跳转到程序中的一个标签(label)处,这个标签通常是用来定义程序入口的。在这个例子中,"main"就是程序入口的标签。因此,这条指令的作用是告诉单片机从程序的入口开始执行。
ORG 0000H AJMP MAIN ORG 000BH LJMP INT_T0 ORG 0030H MAIN: MOV SP,#53H START: LCALL INIT LJMP $ INIT: MOV R0,#20 MOV TMOD,#01H MOV TL0,#0FFH SETB EA SETB ET0 SETB TR0 RET INT_T0: MOV TH0,#4BH MOV TL0,#0FFH DJNZ R0,GO_OUT MOV R0,#20 CPL P0.0 GO_OUT: RETI END
0000H
ORG 0000H:设定程序的起始地址为0000H
AJMP MAIN:跳转到主程序入口MAIN
ORG 000BH:设定中断T0的入口地址为000BH
LJMP INT_T0:长跳转到中断T0的入口地址
ORG 0030H:设定主程序的入口地址为0030H
MAIN: MOV SP,0000H:将堆栈指针寄存器SP的值设置为0000H