第4部分- Linux ARM汇编首个程序
2021/4/16 7:26:41
本文主要是介绍第4部分- Linux ARM汇编首个程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
首个64位汇编
我们先创建第一个AArch64上的首个汇编程序,这个64位代码是我在一个ARMv8服务器上运行的。有国产的华为鲲鹏/飞腾,非国产的也可以是安培或者Cavium。
first64.s
.arch armv8-a .global _start .text _start: mov x8, 93 svc 0 复制代码
编译:
as -g -o first64.o first64.s
ld -o first64 first64.o
在armv8机器上可以运行,当然没有什么输出的,可以通过echo $?来观看执行结果。
首个32位汇编
以树莓派3b为环境,这个是一个32位的ARM处理器,后面32位的代码都在我这个树莓派中运行的。
第一个程序如下:
.global main /* 'main' is our entry point and must be global */ main: /* This is main */ mov r0, #2 /* Put a 2 inside the register r0 */ bx lr /* Return from main */ 复制代码
as -o first.o first.s 复制代码
gcc -o first first.o 复制代码
然后执行:
./first
通过echo查看执行结果
$echo $?
2
这里bx是branch and exchange。分支意味着我们将改变指令执行的流程。该指令只是离开了主要功能,从而有效地结束了我们的程序。
这个代码在amrv8上是不能编译通故宫的,找不到bx指令。
Makefile
为了后续编译方便制作Makefile如下:
# Makefile all: first first: first.o gcc -o $@ $+ first.o : first.s as -o $@ $< clean: rm -vf first *.o
这篇关于第4部分- Linux ARM汇编首个程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23linux 系统宝塔查看网站访问的命令是什么?-icode9专业技术文章分享
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南