这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » C51 求教:汇编转C51

共2条 1/1 1 跳转至

C51 求教:汇编转C51

院士
2006-09-17 18:14:16     打赏
C51 求教:汇编转C51



关键词: 求教     汇编    

院士
2006-12-22 22:43:00     打赏
2楼
问 本人一直用汇编,第一次用C51。有一个问题。
    如下汇编用C51如何写?
        MOV R2,#08H
    NXT:  MOV C,S_INPUT
        RLC A
        DJNZ R2,NXT
    
     谢谢了,英雄们。
   用于串行输入八位数据的。(不是串行总线RXD TXD) 1: 不就是连续采集8次S_INPUT(引脚吗?)数据吗?用C就有点罗嗦了,直接该写一下嵌到C里面得了。A值肯定是要受到影响的,C值、R2值要保护一下。 2: 编译后看看结果...for (i = 8;i > 0; i--) {//      MOV R7,#08H
  CY = S_INPUT;         //NXT:  MOV CY,S_INPUT;比MOV C,S_INPUT差点
  CY   = ACC & 0x80;    //      RLC A
}                       //      DJNZ R7,NXT 3: 谢谢啦感谢大侠的指教 4: 郁闷,看不懂hotpower的程序。 5: to:xrg谢谢您的指教。
  但是在下没有做过将汇编嵌入到c51的经历,不知道是否跟
  在C中嵌入X86的汇编是同样的做法。还望大侠指教。
  将51的汇编嵌入到C51中的语法规则是怎样的?
   谢谢了!! 6: hotpower 能解释下为什么Keil会这样编译和你是怎么发现的吗?逻辑上好像没法解释啊,是Keil预留的特殊指令吗?

/*--------------------------------------------------------------------------
               累加器带进位右移指令 RRC A                                 
#define _rrca_()          CY  = ACC & 0x01                                
汇编代码       rrc a
--------------------------------------------------------------------------*/

/*--------------------------------------------------------------------------
               累加器带进位左移指令 RLC A                                 
#define _rlca_()          CY  = ACC & 0x80
汇编代码       rlc a
--------------------------------------------------------------------------*/ 7: fellow:XWJ是啊,我也在困惑中,  CY  = ACC & 0x80 =?=RLC A
   请 hotpower 赐教。在下洗耳恭听。
   还有,在c中嵌入汇编,就只用#PRAGMA ASM
                                    ASM CODE
                                  #PRAGMA ENDASM
      就可以了吗?如果要返回值的话,是不是要先定义一个变量,
   反汇编以获得该变量的地址ADD1,再回到汇编中,将值 MOV ADD1,A
   是吗?
     8: 哈哈...这个不知如何"行走江湖"???哈哈...整天反汇编难道这个都不知???

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]