程序计数器是用来存放下一条要执行的指令的
这个是内部自动执行的,不需要代码编写的,但是,如果修改了程序计数器的值,就会改变下一条要执行的指令了,等于去改变下一条指令
等于说:你原本读写的程序是要向左,如果不改变程序计数器的值,这下一条指令就是要向左了
但是,可能是中断,也可能是按键,现在改变了程序计数器的值,下一条指令变成了向右了
但是,程序计数器是不能直接操作的,不要问我为什么,PIC规定的!它只能间接操作,
操作的方法是通过操作PCLATH完成程序计数器的操作,等于是说:你操作了PCLATH就是操作了程序计数器
这程序计数器是有21位的,所以,是要三个地址的,数据手册里79页面有说明
TOSL也是是一样的,它是堆栈操作用的,大概的原理是前面的程序计数器是一样的,不同的是它是只读的,它只能读取堆栈最顶的值
你没有真正写过PIC汇编,真的是很难理解的,用PIC汇编,特别是PIC18系列的汇编,只有以下几个原因:
1,公司要求
2,原本就是汇编,你修改或者升级
3,抄,就是反汇编,破解什么的 |