- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言中嵌入汇编语言
C语言中嵌入汇编语言在本论坛中的集锦
论坛中的一些个人看法,我收集了一下,对错的话,大家见仁见智啊
下面是一个简单的例子,具体参数传递等,看书
$NOMOD51
ACC DATA 0E0H
P_VM EQU 0DFE2H
P_PAGE EQU 0DFE0H
NAME VM
?C_VM?VM SEGMENT CODE
PUBLIC C_VM
MOV ACC,#00H
PUSH ACC
PUSH ACC
MOV DPTR,#P_VM
MOV A,#0CH
MOVX @DPTR,A
NOP
RET
END
看了KEIL-C的手册,介绍可以这样加入汇编
#pragma asm;
nop;
nop;
#pragma endasm;
在properties项使能对话框中的Generate Assembler SRC File和Assembler SRC File
选项。
但为何我这样做一直编译通不过呢,它一直提示语法错误。请大虾指教
已经搞定,是我在开始处定义了一个NOP,所以在使用写ASM NOP时冲突才会报错。
请教:C语言调用汇编程序时,如何使Assembly output file项激活请教:C语言调用汇
编程序时,创建汇编子程序框架时,需要在Workbench菜单Project中选择Option命令,
并在其中的ICC430选项类中,对list设置:Assembly output file,可是这个选项时灰色
的,如何才能激活??
C语言调用汇编程序不需要任何设置,只要将汇编的函数另外保存成一个独立的汇编文件,
并把该文件添加到工程中。在C语言中要声明该汇编函数为外部函数,当然汇编的写法要注
意一些事项,这要看一些相关的资料了。
我是想用c语言写个框架,自动生成汇编源程序,这样就需要设置以上的选项。不过可以自
己写汇编的框架,就是以上你所说的办法,现在已经好了,谢谢你!
keil c能编译汇编程序吗?keil c能编译汇编程序吗?
当然可以了,内嵌汇编语句就可以了#pragma src命令
c语言和汇编语言怎么连接谁有c语言和汇编语言怎么连接的资料告诉我一下
建议: 用C语言做个框架,编译后改为汇编框架,填入汇编程序,一般可以保证和C语言兼容.
注意格式
_asm
{
}
如果你用KEIL C高版本的话可以分别编写C和汇编的模块,存成2个文件,分别添加到你
的项目里,然后BUILD ALL就行了,系统集成环境回自动联接的。早期版本需要分别编译生
成OBJ文件,然后联接就可以了。
用内联inline
请教keil c51中加入汇编我在网上下载了一段程序,可怎么也不懂,调了半天也没调通,
请大家看看应该怎么用呀,程序中的shiftR1是干什么的,还有x,ruturn(x)返回什么
值?
这是下载的程序://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
#i nclude asm.h
#i nclude reg52.h
#pragma OT(4,speed)
unsigned long shiftR1(register unsigned long x)
{
#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
x=x*2;
x为4位长整型。
r4567是放x的
在C51中插入汇编问题!请教各位:
1、我想在C51的程序中插入汇编程序,然后用KEIL编译。使用的格式是
asm( ljmp 8000h );。但在用keil编译是提示有错。是否要include
什么头文件。
文档评论(0)