ORG 0000H ,程序从00H单元开始存储
SJMP MAIN , 跳转至主程序
ORG 0030H , 一下程序从30H单元开始存储
(1)为什么要从30H单元存储?
答:00H~30H有各中断入口,为确保能中断不受影响,应该保持良好习惯,将这部分区域空出来。
tips:片内ROM低端的入口地址:0000H复位入口;0003H,INT0(外部中断0的中断服务程序)入口;000BH,T0(定时/计数器0溢出中断服务程序)入口;0013H,INT1(外部中断1的中断服务程序)入口:001BH,T1(定时/计数器1溢出中断服务程序)入口;0023H(串行口中断服务程序)入口;002BH,T2(增强型单片机定时/计数器2溢出或T2EX负跳变中断服务程序)入口。各中断入口下有8字节的存储空间,所以当中断服务程序少于8个字节时,才能将终端服务程序放在入口地址开始的几个单元中。
(2)为什么要切换寄存器?
答:工作寄存器供32个,分4组,每组8个,且8个寄存器对应名称均一致,皆为R0~R7。寄存器组默认置0组。当程序不同地方用到同名寄存器时,就要在调用之前,更改寄存器组,这样才不会导致后面存入的数据覆盖掉之前的同名寄存器的数据。
1.工作寄存器位于片内RAM 的00H~1FH:0组00H~07H,1组08H~0FH,2组10H~17H,3组18H~1FH;
2.寄存器分组靠程序状态字寄存器(PSW)的RS0、RS1决定。(00、01、10、11)。