作者drag (京都念慈庵,贾诩念费翔)
看板ASM
标题Re: [问题] Microchip PIC18 ASM 疑问
时间Tue Jun 7 17:12:32 2016
※ 引述《wasidada (dada)》之铭言:
: 最近因为工作需要开始要碰触 PIC18系列的ASM
: 在判断式这边搞不懂 无论我的累加器设定多少 总是会执行Action_1和Action_2
: 请问有谁可以帮忙指点一下是哪一边有打错
: 谢谢
我也刚好要接触PIC18
1. 不知道这样会不会比较好? 我猜是主程序结束端没有挡一下,继续跑下去
我另外好奇你有试过>25的值吗?例如说30,
也许只会执行Act1但後面可能会挂掉,或是一直执行无法返回
MOVLW 000h
MOVWF TRISD
MOVLW .23
CPFSGT .20
call Action_1
CPFSGT .25
call Action_2
goto Finish
Action_1
:
BCF LATD,5
return
Action_2
:
BCF LATD,6
return
Finish
END
2. 另外,PIC的世界里,好像label不用冒号,
不确定是否为真,可能要麻烦你试一下
3. 刚才又查了一下CPFSGT,他的下两行是关联的,照你的原code逻辑
大概是这样
CPFSGT .20
call Action_1 (不成立,PC从此行开始跑,等等return回来继续下一行)
CPFSGT .25 (成立,PC跳过上一行,从这行开始)
call Action_2
Action_1
..........
或这样
CPFSGT .20
call Action_1
CPFSGT .25
call Action_2 (不成立,PC从此行开始跑,等等回来会继续下一行...=,=;;)
Action_1 (成立,PC跳过上一行,从这行开始...遇到return可能会挫起来~)
BCF LATD,5
return
结果
Value: 19, A1 A2都会做
23, A2 A1都会做
30, A1 做完,可能挂掉或是PC不知道跑哪去了
参考资料:
http://goo.gl/1K0zJj
--
明月几时有?把酒问青天,不知天上宫阙,今夕是何年?
我欲乘风归去,惟恐琼楼玉宇,高处不胜寒;
起舞弄清影,何似在人间。
转朱阁,低绮户,照无眠。不应有恨,何事长向别时圆?
人有悲欢离合,月有阴晴圆缺,此事古难全。
但愿人长久,千里共婵娟。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.220.35.170
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1465290756.A.3EB.html
※ 编辑: drag (61.220.35.170), 06/07/2016 17:37:51
※ 编辑: drag (61.220.35.170), 06/07/2016 17:38:58
※ 编辑: drag (61.220.35.170), 06/07/2016 17:43:37