PIC单片机散转指令程序问题

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:23:32
PIC单片机散转指令程序问题,是用汇编写的程序,我看不明白散转命令这方面的程序,谁有这个程序,请给小弟说明一下。不知道PCL是启什么会用的,谢谢请给我说一下了。忠心的谢谢你的回答。
以PIC指令系统为例说吧,我是学PIC的

散转程序常用于多操作选择的情况,比如某系统有十项功能,每次当然只能执行某一项功能。每项功能有一段对应的程序,程序的进入由转移指令控制,十个程序就要有十条转移指令,并且一一对应。这十条转移指令的机器代码,就以数据的形式,按约定的顺序依次存放在程序存储器中的一个数据表中。散转移指令,就是利用数据表头地址,加上一个相应的偏移量,作为转移的目的地址,只要控制好这个偏移量,就能准确地将程序转移到某个功能所对应的转移指令处,执行该转移指令,从而转移到相应功能程序。
以MCS-51指令系统为例,如下:
MOV A,#KK;偏移量放入A
MOV DPTR,#TAB;表头地址放入DPTR
JMP @A+DPTR;散转移
........
TAB:LJMP K1;转到功能1程序
LJMP K2;转到功能2程序
........
LJMP K10;转到功能10程序
........
K1:......功能1程序
........
K2:......功能2程序
........
K10:......功能10程序
关于偏移量,如果为0则是对应功能1程序;如果为3则是对应功能2程序;如果为6则是对应功能3程序;........如果为27则是对应功能10程序。因为LJMP K1是叁字节的,所以每功能间地址加3。如果用双字节转移指令,则每功能间地址加2。