ARM aarch64汇编学习笔记(二):ARM DS-5模拟器安装和使用
工欲善其事,必先利其器。 使用Qemu 虽然可以进行模拟开发,但在Qemu调试汇编有一些困难。
DS-5 (即ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。
DS-5 安装
- 从官网选择一个ARM DS-5版本进行下载
我选择的版本是5.26.2, 已经支持Arm v8了。
下载完成后,解压, 点击setup.exe 进行安装, 安装完成后需要添加license, 否则项目无法编译。
license添加完成后既可以正常使用。
##使用DS-5 创建程序
首先新建一个空的C project, 输入project name, 选择tool chains为Arm compiler 6。
右击刚才新建的project, 添加source file
新增一个C文件 main.c 和一个汇编文件 asm_add.s。写一个很简单的a + b =c的程序。代码的核心部分使用汇编实现,C程序主要是入口以及检查结果的准确性。
主程序:
汇编部分:
- 代码编译
在编译之前需要预先做一些配置, 右击项目, 点击属性,选择C/ C++ build
选择设置, 将All Tools settings下的target CPU更改为arm v8:
将ARM linker6 中的Image_layout 改为如下配置:
应用这些修改后, 右击项目, 选择build project:
如果编译成功, 会在Debug目录下生成object 和 axf文件。
- DEBUG 设置
选择run-> debug configuration
右击DS-5 debugger, 新建debug 配置
connection 选择 arm v8-a
files选择刚刚编译出来的axf文件:
debugger选择从main开始, 然后apply, 再然后点击debug
- 运行
点击debug 后,生成如下的界面
点击左上角的开始按钮, 会从左下角的光标位置开始运行, 右上角可以看程序的寄存器河内存信息, 右下角可以看程序的运行结果。
选择单步调试,当运行到汇编部分时,查看寄存器状态
可以看到,当运行到ADD w0, w0, w1那一步时,core寄存器的x0, x1已经变成了预设的2和3.
最终结果:
ARM aarch64汇编学习笔记(二):ARM DS-5模拟器安装和使用相关推荐
- ARM aarch64汇编学习笔记(一):ARMv8架构
第一期专辑,主要写下自己学习如何在window下使用NDK-BUILD来实现ARM aarch64架构汇编编程. 为何要引入ARMV8: 考虑到ARMV7被市场广泛接受,以及形成的成熟的生态,因此后续 ...
- arm 饱和指令_ARM aarch64汇编学习笔记(九):使用Neon指令(一)
NEON是一种基于SIMD思想的ARM技术. SIMD, Single Instruction Multiple Data,是一种单条指令处理多个数据的并行处理技术,相比于一条指令处理一个数据,运算速 ...
- kvm虚拟化学习笔记(二)之linux kvm虚拟机安装
1. 上传ISO文件,这里采用OEL5.8x64 iso 2. 开始安装OEL5.8 # virt-install --name=oeltest02 --ram 512 --vcpus=1 --dis ...
- 汇编学习笔记(二):转移指令
章节目录 转移指令原理 jmp 指令 jcxz 指令 loop 指令 ret 和 retf 指令 call 指令 call+ret 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人 ...
- ARM之汇编学习---如何编写ARM汇编程序
如何编写ARM汇编程序 --------------------------------------------------------- Author :tiger-john
- 大数据学习笔记二:Ubuntu/Debian 下安装大数据框架Hadoop
文章目录 安装Java 为Hadoop创建用户 安装Hadoop 配置Hadoop 配置环境变量 设置配置文件 格式化namenode 启动hadoop集群 访问hadoop集群 大数据学习系列文章: ...
- STM32学习笔记二:命令行工具安装
一目了然 1 简述 2 Windows Terminal 安装 3 PowerShell7 安装 4 Cmake安装 5 ninja安装 1 简述 熟悉 Linux 系统的小伙伴都清楚 Termina ...
- [mmu/cache]-ARM MMU的学习笔记-一篇就够了
★★★ 个人博客导读首页-点击此处 ★★★ . 说明: 在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 64位 . 相关文章 1.ARM cache的学习笔记-一 ...
- [mmu/cache]-ARM cache的学习笔记-一篇就够了
★★★ 个人博客导读首页-点击此处 ★★★ . 说明: 在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 64位 . 相关文章 1.ARM MMU的学习笔记-一篇就 ...
最新文章
- 多线激光雷达~三维建图
- Linux:网络编程
- javascript简介及基本语法
- 如何检测当前的ABAP report是运行在inactive版本下
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python字典和集合)
- CentOS忘记普通用户密码解决办法
- 软件项目管理第一课—IT项目管理实战案例介绍
- Mysql_mysql force Index 强制索引
- 大前端-全栈-node+easyui+express+vue+es6+webpack+react
- 【Android学习笔记】【Android开发环境搭建】安装JDK
- 阿里云 linux centos nginx安装IP ssl https证书
- 烟道机器人_力荐顺义区清洗烟道价格多少钱值得信赖
- 如何用c语言批量替换字符串,[C/C++]急速批量替换字符串
- html整人js代码大全,Fool.js恶搞整人网页特效jQuery插件
- 使用JMeter代理在谷歌浏览器中录制脚本
- android 动态表情包,动图GIF表情包下载
- vsftpd移植到ARM开发板
- python 三国演义人物出场词频统计
- import oracle utility_Oracle DBMS_UTILITY 用法例子
- linux 6 dns,RHEL6下搭建DNS服务器