导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→对于89C51,如何进行位交换?[qxianjin]

 *第43010篇: 对于89C51,如何进行位交换?

  
楼 主:qxianjin 2006年8月31日18:41
 对于89C51,如何进行位交换?
对于89C51,如何进行位交换?

例 如:R1内的内容为87654321,R2内的内容为ABCDEFGH,怎样写程序才能使

R1内的内容变为8765432H,R2内的内容为ABCDEFG1呢?
          对不起,C语言我看不懂,用汇编怎么写程序?----初学者

  
2楼:squall45 2006年9月9日20:12
 [推荐]我试试
你可以利用单片机中的可位寻址区啊
比如:
    MOV 20H,R1
    MOV 21H,R2
    MOV C,20H.0
    MOV F0,C
    MOV C, 21H.0
    MOV 20H.0,C
    MOV C,F0
    MOV 21H.0,C
    
  这样 就可以了。
  
3楼:squall45 2006年9月15日15:56
 [推荐]方法好多的!
其实方法好多,比如还可以用下面:
         MOV A,R1
         RRC A
         JC NEXT
         MOV A,R2
         RRC A
         JC LOP
         AJMP NEXT2
  LOP:INC R1
        DEC R2
        AJMP NEXT2
NEXT:MOV A,R2
         RRC A
         JNC LOP2
         AJMP NEXT2
 LOP2:DEC R1
         INC R2
NEXT2:

       当程序执行到了NEXT2时,R1和R2的最低位就已经互换了!
希望以上的程序能给你有所帮助.有时间可以联系我,我的QQ是:395741732

  
4楼:applelover 2006年9月25日11:57
 这样也可以
 MOV A,R1
 ANL A,#0000000FH
 MOV R3,A
 MOV A,R1
 ANL A,#FFFFFFF0H
 MOV R1,A
 MOV A,R2
 ANL A,#0000000FH
 MOV R4,A
 MOV A,R2
 ANL A,#FFFFFFF0H
 MOV R2,A
 MOV A,R1
 ADD A,R4
 MOV R1,A
 MOV A,R2
 ADD A,R3
 MOV R2,A

>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:Kane ;;BeBe ;;H8

[下一篇主题]:请教使用过EM4095的大虾!!!