C中如何直接嵌入汇编的方法

来源:本站
导读:目前正在解读《C中如何直接嵌入汇编的方法》的相关信息,《C中如何直接嵌入汇编的方法》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C中如何直接嵌入汇编的方法》的详细说明。
简介:本文介绍了C中如何直接直接嵌入汇编的方法。

//<asm.h>

#ifdef ASM

unsigned long shiftR1(register unsigned long);

#else

extern unsigned long shiftR1(register unsigned long);

#endif

//end of asm.h

//<asm.c>

#define ASM

#include <asm.h>

#include <reg52.h>

#pragma OT(4,speed)

unsigned longshiftR1(register unsigned longx)

{

#pragma asm

clr c

mov a,r4

rrc a

mov r4,a

mov a,r5

rrc a

mov r5,a

mov a,r6

rrc a

mov r6,a

mov a,r7

rrc a

mov r7,a

#pragma endasm

return(x);

}

//end of asm.c

将此源文件加入要编译的工程文件,将光标指向此文件,选择右键菜单“option for file 'asm.c'”,将属性单“properties”中的“Generate Assembler SRC File”“Assemble SRC File”两项设置成黑体的“√”将“Link Public Only”的“√”去掉,再编译即可。

用此方法可以在c源代码的任意位置用#pragma asm和#pragma endasm嵌入汇编语句。

但要注意的是在直接使用形参时要小心,在不同的优化级别下产生的汇编代码有所不同,可以察看对应的.lst文件看一看,得到正确的优化级别后,#pragma OT(x,speed)锁定优化级别(这里的值是0-9)。

提醒:《C中如何直接嵌入汇编的方法》最后刷新时间 2024-03-14 01:03:31,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C中如何直接嵌入汇编的方法》该内容的真实性请自行鉴别。