请教这几个PIC指令的运用问题。看不懂教材的注释。求解...
本帖最后由 kingkrosson 于 2013-5-22 09:38 编辑书上的一段代码,请高手指教。
movlw high(M_bra) ; 获取M_bra地址高位字节
movwfPCLATH ;设定PCLATH寄存器
movf state,w ;提取跳转控制字节
andlw 0x03 ; 确保跳转落在确定的范围内,w不超过3
addwf PCL,f ;
M_bragotostate0
gotostate1
gotostate2
gotostate3
对上面这段指令,我有如下几个问题,求解答。
1, movf state,w 这个指令是什么作用? state的值是从哪儿来的啊。从哪儿提取的。
2, andlw 0x03 为啥要与运算,这个与运算是怎么确保这个跳转范围的呢。具体是怎么个道理?真搞不明白啊 ^^;
光看这一段代码的确不知道STATE是干什么的。你先要看看这个STATE是什么寄存器。但是看下面你只有4种状态也就是0-3.所以STATE的值不能超过3,否则就要跑飞了。 lgg88 发表于 2013-5-22 07:48 static/image/common/back.gif
光看这一段代码的确不知道STATE是干什么的。你先要看看这个STATE是什么寄存器。但是看下面你只有4种状态也 ...
请问为什么要用 andlw 0x03 这个指令来判断,是否在0-3这个范围呢。怎么判断的。
相与以后不就是最多0-3了吗?只有低2位有效。你下面的goto状态只有4个啊,所以必须保证w值不超过3,否则程序就跑飞了 {:victory:} 原来如此阿。 受教了,谢谢。
页:
[1]