打印

请教一个关于在C51中嵌入汇编的问题

[复制链接]
2183|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dqstar|  楼主 | 2007-8-19 09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
是不是汇编代码必需放在一个单独的文件里?

我的意思是,汇编代码是不是只能放在一个子函数里,而且这个子函数还必需单独的保存为一个.c文件,放在工程下?

能不能在main函数中直接嵌套汇编代码?
如何设置?

我看了一些教程,好像嵌入汇编代码的函数,与调用它的函数都在两个文件里!

我的工程下只有一个.c的文件,我想在这个.c的文件里,嵌入汇编代码,结果有问题,虽然编译通过了,但仿真的结果不是我想要的结果

相关帖子

沙发
dqstar|  楼主 | 2007-8-19 09:50 | 只看该作者

谁帮我看一下下面这个程序

#include<reg51.h>
//#include<intrins.h>
  
void delay(char i);
unsigned moveleft(unsigned char value);
void main(void)
{
    unsigned char temp;
    P1=0xff;
    temp=0xfe;
    while(1)
    {
        P1=temp;
        ACC=temp;
    #pragma ASM
    RL A
    #pragma ENDASM
        temp =ACC;
        delay(255);
        delay(255);
    }
}    

void delay(char i)
{
    unsigned char x;
    while(i--)
    {
    for(x=0;x<125;x++);
    }
}


//直接嵌入了汇编,但没有实现跑马灯的效果

使用特权

评论回复
板凳
computer00| | 2007-8-19 09:57 | 只看该作者

分开两个文件又啥不好的?方便管理。

使用特权

评论回复
地板
computer00| | 2007-8-19 10:08 | 只看该作者

C语言里面直接有移位的运算符,不用这样搞.

直接用temp<<=1; 就可以左移一位了。

使用特权

评论回复
5
dqstar|  楼主 | 2007-8-19 10:18 | 只看该作者

可以真接用C,我知道,不过我想试试在C51里嵌套汇编

使用特权

评论回复
6
computer00| | 2007-8-19 10:36 | 只看该作者

可以直接使用在线汇编

__asm RL A


文件选项需要设置一下。参考
相关链接:http://computer00.21ic.org/user1/2198/archives/2006/9501.html

使用特权

评论回复
7
ayb_ice| | 2007-8-20 08:04 | 只看该作者

分两个文件那不叫嵌入汇编

嵌入汇编是指在C中插入汇编指令,你那叫混合编程...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

15

主题

34

帖子

1

粉丝