程序計數器是用來存放下一條要執行的指令的
這個是內部自動執行的,不需要代碼編寫的,但是,如果修改了程序計數器的值,就會改變下一條要執行的指令了,等于去改變下一條指令
等于說:你原本讀寫的程序是要向左,如果不改變程序計數器的值,這下一條指令就是要向左了
但是,可能是中斷,也可能是按鍵,現在改變了程序計數器的值,下一條指令變成了向右了
但是,程序計數器是不能直接操作的,不要問我為什么,PIC規定的!它只能間接操作,
操作的方法是通過操作PCLATH完成程序計數器的操作,等于是說:你操作了PCLATH就是操作了程序計數器
這程序計數器是有21位的,所以,是要三個地址的,數據手冊里79頁面有說明
TOSL也是是一樣的,它是堆棧操作用的,大概的原理是前面的程序計數器是一樣的,不同的是它是只讀的,它只能讀取堆棧最頂的值
你沒有真正寫過PIC匯編,真的是很難理解的,用PIC匯編,特別是PIC18系列的匯編,只有以下幾個原因:
1,公司要求
2,原本就是匯編,你修改或者升級
3,抄,就是反匯編,破解什么的 |