457878 发表于 2011-12-8 17:50

代码中到处是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

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

伪指令应该是不占空间的,
页: [1]
查看完整版本: 代码中到处是banksel,好痛苦!