打印

代码中到处是banksel,好痛苦!

[复制链接]
6782|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
457878|  楼主 | 2011-12-8 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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
沙发
headwolf_83| | 2011-12-8 19:21 | 只看该作者
投靠C吧。否则就认了吧。

使用特权

评论回复
板凳
yewuyi| | 2011-12-8 19:49 | 只看该作者
1、自己尽量合并和简化到同一个bank中操作
2、使用C语言,这就不要考虑了

使用特权

评论回复
地板
NE5532| | 2011-12-8 22:17 | 只看该作者
用汇编的人,会写goto l4??

使用特权

评论回复
5
lxyppc| | 2011-12-9 08:41 | 只看该作者
那就只好用C了

使用特权

评论回复
6
Ryanhsiung| | 2011-12-9 09:14 | 只看该作者
和LZ一样,改先前人留下的汇编就是这么痛苦

使用特权

评论回复
7
Ryanhsiung| | 2011-12-9 09:16 | 只看该作者
代码小点,可以放在一个BANK里

使用特权

评论回复
8
happyhard3| | 2011-12-9 09:16 | 只看该作者
学习中~~~~~~~~~~

使用特权

评论回复
9
ayb_ice| | 2011-12-9 11:23 | 只看该作者
有C你不用

使用特权

评论回复
10
sysdriver| | 2011-12-9 12:26 | 只看该作者
汇编,不是这样滴

使用特权

评论回复
11
chhaich| | 2011-12-9 17:20 | 只看该作者
改过一年的汇编,痛不欲生呀,呵呵。。。
自己写都没有这么痛苦。。。

使用特权

评论回复
12
passteen| | 2013-5-7 17:46 | 只看该作者
你这好像有C的影子啊,但又不像是用C编译后的汇编样子。C编译后的汇编文件很喜欢用banksel,哪怕根本就不需要的状态下也如此,C编译器只是做到不出错误,当你进行优化时可能会减少许多,不过想要用汇编就得老实一点去写,写多了会觉得汇编比C好,不过大程序用汇编可就会让你头疼好一阵子。如果你意志坚定就**用汇编吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

269

主题

883

帖子

3

粉丝