工欲善其事,必先利其器。 使用Qemu 虽然可以进行模拟开发,但在Qemu调试汇编有一些困难。
DS-5 (即ARM Development Studio 5) ,是一款针对 ARM 支持的 Linux 和 Android 平台的全面的端到端软件开发工具套件。

DS-5 安装

  1. 从官网选择一个ARM DS-5版本进行下载

我选择的版本是5.26.2, 已经支持Arm v8了。
下载完成后,解压, 点击setup.exe 进行安装, 安装完成后需要添加license, 否则项目无法编译。

license添加完成后既可以正常使用。

##使用DS-5 创建程序

  1. 首先新建一个空的C project, 输入project name, 选择tool chains为Arm compiler 6。

  2. 右击刚才新建的project, 添加source file

新增一个C文件 main.c 和一个汇编文件 asm_add.s。写一个很简单的a + b =c的程序。代码的核心部分使用汇编实现,C程序主要是入口以及检查结果的准确性。

主程序:

汇编部分:

  1. 代码编译
    在编译之前需要预先做一些配置, 右击项目, 点击属性,选择C/ C++ build

选择设置, 将All Tools settings下的target CPU更改为arm v8:

将ARM linker6 中的Image_layout 改为如下配置:

应用这些修改后, 右击项目, 选择build project:

如果编译成功, 会在Debug目录下生成object 和 axf文件。

  1. DEBUG 设置
    选择run-> debug configuration

右击DS-5 debugger, 新建debug 配置
connection 选择 arm v8-a

files选择刚刚编译出来的axf文件:

debugger选择从main开始, 然后apply, 再然后点击debug

  1. 运行
    点击debug 后,生成如下的界面

点击左上角的开始按钮, 会从左下角的光标位置开始运行, 右上角可以看程序的寄存器河内存信息, 右下角可以看程序的运行结果。

选择单步调试,当运行到汇编部分时,查看寄存器状态

可以看到,当运行到ADD w0, w0, w1那一步时,core寄存器的x0, x1已经变成了预设的2和3.

最终结果:

ARM aarch64汇编学习笔记(二):ARM DS-5模拟器安装和使用相关推荐

  1. ARM aarch64汇编学习笔记(一):ARMv8架构

    第一期专辑,主要写下自己学习如何在window下使用NDK-BUILD来实现ARM aarch64架构汇编编程. 为何要引入ARMV8: 考虑到ARMV7被市场广泛接受,以及形成的成熟的生态,因此后续 ...

  2. arm 饱和指令_ARM aarch64汇编学习笔记(九):使用Neon指令(一)

    NEON是一种基于SIMD思想的ARM技术. SIMD, Single Instruction Multiple Data,是一种单条指令处理多个数据的并行处理技术,相比于一条指令处理一个数据,运算速 ...

  3. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    1. 上传ISO文件,这里采用OEL5.8x64 iso 2. 开始安装OEL5.8 # virt-install --name=oeltest02 --ram 512 --vcpus=1 --dis ...

  4. 汇编学习笔记(二):转移指令

    章节目录 转移指令原理 jmp 指令 jcxz 指令 loop 指令 ret 和 retf 指令 call 指令 call+ret 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人 ...

  5. ARM之汇编学习---如何编写ARM汇编程序

    如何编写ARM汇编程序 --------------------------------------------------------- Author             :tiger-john

  6. 大数据学习笔记二:Ubuntu/Debian 下安装大数据框架Hadoop

    文章目录 安装Java 为Hadoop创建用户 安装Hadoop 配置Hadoop 配置环境变量 设置配置文件 格式化namenode 启动hadoop集群 访问hadoop集群 大数据学习系列文章: ...

  7. STM32学习笔记二:命令行工具安装

    一目了然 1 简述 2 Windows Terminal 安装 3 PowerShell7 安装 4 Cmake安装 5 ninja安装 1 简述 熟悉 Linux 系统的小伙伴都清楚 Termina ...

  8. [mmu/cache]-ARM MMU的学习笔记-一篇就够了

    ★★★ 个人博客导读首页-点击此处 ★★★ . 说明: 在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 64位 . 相关文章 1.ARM cache的学习笔记-一 ...

  9. [mmu/cache]-ARM cache的学习笔记-一篇就够了

    ★★★ 个人博客导读首页-点击此处 ★★★ . 说明: 在默认情况下,本文讲述的都是ARMV8-aarch64架构,linux kernel 64位 . 相关文章 1.ARM MMU的学习笔记-一篇就 ...

最新文章

  1. 多线激光雷达~三维建图
  2. Linux:网络编程
  3. javascript简介及基本语法
  4. 如何检测当前的ABAP report是运行在inactive版本下
  5. 神经网络与深度学习——TensorFlow2.0实战(笔记)(四)(python字典和集合)
  6. CentOS忘记普通用户密码解决办法
  7. 软件项目管理第一课—IT项目管理实战案例介绍
  8. Mysql_mysql force Index 强制索引
  9. 大前端-全栈-node+easyui+express+vue+es6+webpack+react
  10. 【Android学习笔记】【Android开发环境搭建】安装JDK
  11. 阿里云 linux centos nginx安装IP ssl https证书
  12. 烟道机器人_力荐顺义区清洗烟道价格多少钱值得信赖
  13. 如何用c语言批量替换字符串,[C/C++]急速批量替换字符串
  14. html整人js代码大全,Fool.js恶搞整人网页特效jQuery插件
  15. 使用JMeter代理在谷歌浏览器中录制脚本
  16. android 动态表情包,动图GIF表情包下载
  17. vsftpd移植到ARM开发板
  18. python 三国演义人物出场词频统计
  19. import oracle utility_Oracle DBMS_UTILITY 用法例子
  20. linux 6 dns,RHEL6下搭建DNS服务器

热门文章

  1. Docker自制CentOS镜像
  2. 这家5G边缘计算企业科创板首发过会!
  3. 【竞赛复盘】2022雪浪算力开发者大赛——阀体异常检测
  4. Bypass部分知识
  5. Struts2 ValueStack ActionContext OGNL 关系
  6. 市场运营:App 渠道追踪的5种方法以及渠道数据分析的两大思路
  7. MySQL 大作业实训考试题_2020系统综合实践 期末大作业 15组
  8. No2-Java入门
  9. cydia服务器未响应,cydia错误常见问题解决办法汇总
  10. 快速排序学习 the c programming languish