日志档案

发表于 2007-2-8 15:25:41

1

标签: 技巧  单片机  

如何不使用第三个寄存器,交换已知的2个寄存器的数据。

如何   不使用第三个寄存器,交换已知的2个寄存器的数据。

已知:tmp1:0x55   

            tmp2:0x05

需要交换2个寄存器的数据:

   mov a,tmp1      ;A:55 2个字节交换
   xor tmp2,a       ;B:50   
   mov a,tmp2      ;=50
   xor tmp1,a       ;A:05 ;
   mov a,tmp1   
   xor tmp2,a

用emc的单片机写的。

我用的实际是交换的CIDRAM的,因为收到的数据需要交换,处理如下:

   mov a,Rciddata   ;A:55 2个字节交换
   dec Rcidaddr      ;B:05
   xor rciddata,a     ;B:50   
   mov a,rciddata   ;=50
   inc Rcidaddr
   xor rciddata,a    ;A:05 ;
   mov a,rciddata
   dec rcidaddr
   xor rciddata,a
   inc rcidaddr        ;恢复cid数据指针

 

 

系统分类: 单片机   |   用户分类: 软件相关   |   来源: 原创   |   【推荐给朋友】

    阅读(884)    回复(1)  

投一票您将和博主都有获奖机会!

  • abcd200844

    2007-2-9 11:40:28

    这种情况在中断中处理数据时可以用到。中断时,占用1个RAM有时比较困难。