写组合语言很依赖硬件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有免费和付费课程,会由基础一步一步带起,网络上也很多教学资源
如果你有师父带你入门,那这些基本都没教你就要你入火坑也太糟糕了点