代码中到处是banksel,好痛苦!
本帖最后由 457878 于 2011-12-8 17:55 编辑变量定义在bank3中,全是banksel !是不是可以减少一点【banksel 】?
_SPI_Send_Byte:
banksel bytData
movwf bytData ;bytData = w;
Mmov bytCnt,.8;n=8;
banksel STATUS
goto l3 ;while(n--)
l4:
call _Delay100us
banksel STATUS
bcf CLK ;CLK = 0 ;
banksel bytData
btfss bytData,7;if((dat&0x80) == 0x80)
goto l6
banksel STATUS
bsf MOSI;MOSI = 1 ;
goto l7
l6:
banksel STATUS
bcf MOSI;MOSI = 0 ;
l7:
call _Delay100us
banksel STATUS
bcf STATUS,C;dat = dat<<1;
banksel bytData
rlf bytData
banksel STATUS
bsf CLK ;CLK = 1 ;
l3:
banksel bytCnt
decf bytCnt
incfsz bytCnt,w
goto l4
return 投靠C吧。否则就认了吧。 1、自己尽量合并和简化到同一个bank中操作
2、使用C语言,这就不要考虑了 用汇编的人,会写goto l4?? 那就只好用C了 和LZ一样,改先前人留下的汇编就是这么痛苦 代码小点,可以放在一个BANK里 学习中~~~~~~~~~~ 有C你不用 汇编,不是这样滴 改过一年的汇编,痛不欲生呀,呵呵。。。
自己写都没有这么痛苦。。。 你这好像有C的影子啊,但又不像是用C编译后的汇编样子。C编译后的汇编文件很喜欢用banksel,哪怕根本就不需要的状态下也如此,C编译器只是做到不出错误,当你进行优化时可能会减少许多,不过想要用汇编就得老实一点去写,写多了会觉得汇编比C好,不过大程序用汇编可就会让你头疼好一阵子。如果你意志坚定就**用汇编吧 伪指令应该是不占空间的,
页:
[1]