Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gcc 编译aarch64的汇编代码_Gcc_Assembly_Arm_Arm64 - Fatal编程技术网

Gcc 编译aarch64的汇编代码

Gcc 编译aarch64的汇编代码,gcc,assembly,arm,arm64,Gcc,Assembly,Arm,Arm64,我已经用AARC64指令集生成了一个汇编文件try.s。我想在运行ubuntu的ARM8(AARC64处理器)上编译它。 我的本机编译器是gcc(4.8),我使用以下命令进行编译 gcc-o try.o try.s 我得到以下错误 错误:需要ARM寄存器--mov x10,x0 虽然我认为GCC4.8支持AARC64,但似乎aarch4寄存器没有被识别。有人能告诉我我遗漏了什么或者我应该包括什么特别的选项吗?或者建议我使用本机编译器(而不是交叉编译器)来执行aarch64。我也想使用gdb本机调

我已经用AARC64指令集生成了一个汇编文件try.s。我想在运行ubuntu的ARM8(AARC64处理器)上编译它。 我的本机编译器是gcc(4.8),我使用以下命令进行编译

gcc-o try.o try.s

我得到以下错误 错误:需要ARM寄存器--mov x10,x0


虽然我认为GCC4.8支持AARC64,但似乎aarch4寄存器没有被识别。有人能告诉我我遗漏了什么或者我应该包括什么特别的选项吗?或者建议我使用本机编译器(而不是交叉编译器)来执行aarch64。我也想使用gdb本机调试它。

gcc
用于32b目标。”未为aarch32指令集定义Xn'寄存器。这是编译器告诉您的


右侧工具链是aarch64 elf gcc。


PS:将asm文件扩展名设为
.s
(大写字母s)

是个好主意。您是否尝试从C文件(使用gcc-s)生成asm以与语法进行比较?(实际上,完全编译来检查你的编译器是否工作,但是如果它是Ubuntu自带的,它应该)所以。。。当我使用g++-arch64 linux gnu在x-86系统上交叉编译它时,它编译得很好,这让我认为语法是正确的。此外,它抛出一个错误,称我使用64位访问(x0-x30)时需要ARM寄存器:(.是的,编译器附带了ubuntu gcc 4.8.2哪个ubuntu?我在gcc测试场上的aarch64机器上试用了ubuntu 14.04.3 LTS,gcc是4.8.4-2ubuntu1~14.04.Yup,32位汇编程序。要么你有一些乱七八糟的多拱包,要么你无意中运行了整个32位用户空间(我会查看
uname-a
reports)不象猜测的那样,你安装了一个完整的32位用户空间…你必须重新安装整个程序,这次选择正确的Ubuntu版本。