这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » c51 怎样才能在c51中嵌入汇编

共2条 1/1 1 跳转至

c51 怎样才能在c51中嵌入汇编

院士
2006-09-17 18:14:16     打赏
c51 怎样才能在c51中嵌入汇编



关键词: 怎样     能在     嵌入     汇编    

院士
2006-12-22 22:43:00     打赏
2楼
问 请问一下,怎样才能在c51中嵌入汇编,可不可以给出一个实例.我按网上的方法去做,可总通不过编译.大家看一下我这样做可以吗?
#include<reg51.h>
sbit  KdClk=P0^0;
sbit  KdDat=P0^1;
void main(void)
{
    
    char i=8;
char KdData[10]={0x11,0xD7,0x32,0x92,0xD4,0x98,0x18,0xD3,0x10,0x90};
    do
    {
        KdClk = 1;
        KdData[1] = KdData[1]<<1 ;
        KdDat = CY;
        KdClk = 0;
    } while (--i != 0);
    KdClk = 1;
#pragma ASM
DELAY_1S:
            MOV     R6,#0FFH
LOOP7:      MOV     R5,#0FFH
LOOP6:      NOP
            NOP
            NOP
            DJNZ    R5,LOOP6
            DJNZ    R6,LOOP7
#pragma ENDASM
}
有这样的错误提示:'asm/endasm' requires src-control to be active
这是什么回事?
1: 这和的你的的编译器是有关的//用汇编写的一个子程序

PUBLIC _DELAY
DELAYP SEGMENT CODE
RSEG   DELAYP
_DELAY:            ;延时10ms*R7    
LOOP1:
    MOV    R6,#0f9H
LOOP:
         nop
    nop
    nop
    nop
    nop
    DJNZ    R6,LOOP
    DJNZ    R7,LOOP1    
    RET 2: 用C的调用...
void delay(uchar);
...

....


main()
{
....

delay(30);//参数30将赋给R7
....

} 3: 是不是用的Keil c?应该是编译环境没有设好吧。

共2条 1/1 1 跳转至

回复

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