主题 : 请教QT中嵌入汇编语句的错误 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 24006
精华: 0
发帖: 20
金钱: 100 两
威望: 20 点
综合积分: 40 分
注册时间: 2010-06-30
最后登录: 2017-09-13
楼主  发表于: 2010-08-24 17:34

 请教QT中嵌入汇编语句的错误

各位高手好,小弟近日需要在QT里嵌入汇编语言,对ARM9特定地址的内存操作,但是却怎么也编译不过,希望各位能帮一下忙。

之前已经试着把movl %%r0,%%r1这句话嵌入QT,成功编译。所以我觉得是语法出现了错误,不过没找到错在哪里了。

以下是一段把a里面的值送到寄存器r0的程序。

_asm_ _volatile_("movl 1, %%r0"
:
:"r"(a)
:"memory");



以下是错误信息:

/opt/EmbedSky/qt-4.5/__install/arm/bin/uic mainwindow.ui -o ui_mainwindow.h
arm-linux-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../__install/arm/mkspecs/default -I. -I../../__install/arm/include/QtCore -I../../__install/arm/include/QtNetwork -I../../__install/arm/include/QtGui -I../../__install/arm/include -I. -I. -I. -o main.o main.cpp
arm-linux-g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../__install/arm/mkspecs/default -I. -I../../__install/arm/include/QtCore -I../../__install/arm/include/QtNetwork -I../../__install/arm/include/QtGui -I../../__install/arm/include -I. -I. -I. -o mainwindow.o mainwindow.cpp
mainwindow.cpp: In constructor 'MainWindow::MainWindow(QWidget*)':
mainwindow.cpp:30: error: invalid 'asm': operand number out of range
{standard input}: Assembler messages:
{standard input}:8622: Error: ARM register expected -- `mov ,%r0'
make: *** [mainwindow.o] 错误? 1



希望各位能帮助我~谢谢
[ 此帖被nemo211在2010-08-24 17:58重新编辑 ]