作者kikiqqp (喵食罐头)
看板ASM
标题Re: [问题] Microchip PIC18 ASM 疑问
时间Thu Jun 9 14:23:55 2016
写组合语言很依赖硬体datasheet,强烈建议你先把硬体的部份全部看完
尤其是RAM的部份,第五章 MEMORY ORGANIZATION
http://ww1.microchip.com/downloads/en/DeviceDoc/39775b.pdf
※ 引述《wasidada (dada)》之铭言:
: ※ 引述《kikiqqp (喵食罐头)》之铭言:
: 谢谢 你的回文
: : 先假设你用的是这个
: : ;=====================================================================
: : ; MPASM PIC18F67J50 processor include
: : ;
: : ; (c) Copyright 1999-2007 Microchip Technology, All rights reserved
: : ;=====================================================================
: : 缩排,排版烂的工程师肯定不会写出好程式
: C是什麽? 其实 我不知道C是什麽
: 因为我不知道怎新增变数 就使用 A,B,C,D
: 後来我try到E 程式就出错了~
所以你一开始就错了,因为你根本没有设定到变数,而是拿一个现有的功能暂存器来用
却完全不在意这暂存器本来是做什麽的
这边你得先搞懂 EQU 是做什麽用的
: : INC中是C EQU H'0000'呦
: : D是什麽?
: : INC中是D EQU H'0005'呦
: : 这边是一个LOOP
: : 你在使用CPFSGT有没有注意到手册上 f和 a各代表什麽意思呢?
: : 还有C是REG吗?
: 我是把C当成一般变数在做使用 = =
但是他不一定是你能用的变数,通常是其他周边使用的
: :你知道执行Action_1後会接着执行Action_2吗?
: 是 要紧接着执行Action_2
: : CPFSGT是W和F(REG)比较,你改变了W当然结果会变动呀
: : 至於是不是你要的结果根本不知道
: : 你知道执行Action_3後会接着执行Action_4吗?
: : 你知道执行Action_4後会接着执行Action_1吗?之後回到GOTO start
: 忘记放return 感谢指导
: : 以下DELAY略过
: : 除非有特殊必要性,不然我会建议PIC18F先用C来实作想要的部份
: : 并利用编译器来看组语
如果你是自己入门
MICROCHIP有免费和付费课程,会由基础一步一步带起,网路上也很多教学资源
如果你有师父带你入门,那这些基本都没教你就要你入火坑也太糟糕了点
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.119.159
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ASM/M.1465453439.A.C19.html
1F:推 wasidada: 谢谢 我先花一点时间来K资料 再来try function 06/10 01:47
2F:推 selfhu: 变数的命名尽量不要与SFR名称相同,因为写inc档的人会考量 06/22 05:06
3F:→ selfhu: 到可以让使用者能快速上手,名称会照spec走 06/22 05:06