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

[复制链接]
9005|16
 楼主| 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??
lxyppc 发表于 2011-12-9 08:41 | 显示全部楼层
那就只好用C了
Ryanhsiung 发表于 2011-12-9 09:14 | 显示全部楼层
和LZ一样,改先前人留下的汇编就是这么痛苦
Ryanhsiung 发表于 2011-12-9 09:16 | 显示全部楼层
代码小点,可以放在一个BANK里
happyhard3 发表于 2011-12-9 09:16 | 显示全部楼层
学习中~~~~~~~~~~
ayb_ice 发表于 2011-12-9 11:23 | 显示全部楼层
有C你不用
sysdriver 发表于 2011-12-9 12:26 | 显示全部楼层
汇编,不是这样滴
chhaich 发表于 2011-12-9 17:20 | 显示全部楼层
改过一年的汇编,痛不欲生呀,呵呵。。。
自己写都没有这么痛苦。。。
passteen 发表于 2013-5-7 17:46 | 显示全部楼层
你这好像有C的影子啊,但又不像是用C编译后的汇编样子。C编译后的汇编文件很喜欢用banksel,哪怕根本就不需要的状态下也如此,C编译器只是做到不出错误,当你进行优化时可能会减少许多,不过想要用汇编就得老实一点去写,写多了会觉得汇编比C好,不过大程序用汇编可就会让你头疼好一阵子。如果你意志坚定就**用汇编吧
LEDS 发表于 2025-4-2 13:06 | 显示全部楼层
伪指令应该是不占空间的,
kingTek 发表于 2025-6-26 21:42 来自手机 | 显示全部楼层
光凭切bank这low到极点的机械死板的设计思想,荣登心目中的第一,倒数的!
波尔街道的松柏 发表于 2025-8-29 13:44 | 显示全部楼层
可封装 bank 切换宏,按模块划分 bank,用汇编伪指令自动切换,或用汇编器 bank 管理功能,减少手动 banksel,提升可读性。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

270

主题

885

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部