在c中嵌入汇编语言报错(问题解决)

来源:本站
导读:目前正在解读《在c中嵌入汇编语言报错(问题解决)》的相关信息,《在c中嵌入汇编语言报错(问题解决)》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《在c中嵌入汇编语言报错(问题解决)》的详细说明。
简介:结论:在嵌入的汇编语句里的引号与汇编语句之间要存在空格!!!

问题如下:

小弟在ccs的c541 device simulator环境下编了一个串口输出的小程序,编译没报错,但是run起来功能没实现,单步调的时候发现:用*st1=0x0000;的语句赋值给st1时,该寄存器的INTM(全局中断使能)位没有变,依然为复位时的1,看了一下书,书上说该位不能用存储器写的方式设置,于是小弟程序改为嵌入汇编语句:

asm(“RSBX INTM”);让INTM清0以使能全局中断

结果系统编译报错:

-------------------------dsptestprogram.pjt - Debug-------------------------

[dsptestprogram.c] "C:CCStudio_v3.1C5400cgtoolsbincl500" -g -fr"C:/CCStudio_v3.1/MyProjects/dsptestprogram/Debug" -d"_DEBUG" -@"Debug.lkf" "dsptestprogram.c"

"C:DOCUME~1haoyunLOCALS~1TempTI33610", ERROR!at line 165: [E0002]

Invalid mnemonic specification<————错误提示

RSBX INTM

1 Assembly Error, No Assembly Warnings

Errors in Source - Assembler Aborted

>> Compilation failure

[vectors.asm] "C:CCStudio_v3.1C5400cgtoolsbincl500" -g -fr"C:/CCStudio_v3.1/MyProjects/dsptestprogram/Debug" -d"_DEBUG" -@"Debug.lkf" "vectors.asm"

Build Complete,

1 Errors, 0 Warnings, 0 Remarks.

有没有大侠知道是怎么回事吗??小弟实在菜得很~~

ps:小弟在定义芯片寄存器的头文件里只定义了几个程序要用到的寄存器,程序中也只是对要用到的寄存器进行了初始化

解答如下:

问题解决了,在嵌入的汇编语句里的引号与汇编语句之间要存在空格!!!

例如 asm("RSBX INTM") 不行,而asm(" RSBX INTM ")是可以的,这个错误对于菜鸟级的小弟而言,查得好苦啊

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