ADS环境下的ARM汇编程序设计实验报告

ADS环境下的ARM汇编程序

    

一、 实验目的

1.了解 ARM汇编语言的基本框架,学会使用ARM的汇编语言编程。

2.熟悉ADS1.2下进行汇编语言程序设计的基本流程;

3. 了解AXD中调试功能。

二、 实验环境

硬件:PC机

软件:ADS1.2

三、 实验任务与步骤

实验任务

1、在ADS中新建工程,并设置开发环境

2、在Code Warrior环境中编辑、编译和链接汇编语言程序,并生成可执行文件

        ①在AXD中调试汇编程序。

        ②使用命令行界面编辑、编译和链接汇编程序。

实验步骤

1、 新建工程

打开 Code Warrior ,选择 File->New(project) 选项,使用 ARM Executable Image 模版新建一个工程。

2、设置编译和链接选项

在菜单栏 Edit-DebugRel Settings 里进行设置。由于我们使用的是模拟机,设置汇编语言编译器 Assembler 的模拟处理器架构为Xscale;在 ARM Linker 中,选择 output 选项卡并选择 Linktype为 Simple 类型,确认 RO Base 为 0x8000,修改 RW Base 为0x9000。

3、 添加源程序文件

ARM 汇编程序源文件后缀名为.S 大小写均可。确保添加入当前工程复选框选上。

4、 编辑源程序代码

5、 编译汇编源代码文件

右击.S 文件,选择 Compile,如果没有成功会弹出错误和警告窗口。成功生成.O 目标代码文件。

6、 编译整个工程

选择 Project Make 进行整个工程的编译。可以在目录空间查看是否生成了映像文件.axf。

7、 确认调试目标设置

设置目标处理器型号。

8、 运行映像文件

如果 load image 是灰色,options -> configure target -> ARMUL(没有目标板)然后点 OK 就可以加载 AXF 文件了

9、 调试准备

在 AXD 中,打开各个观察窗口,做调试准备。选择 Processor Views Registers 选项,打开 ARM 寄存器显示窗口。调整窗口大小,使得Current 节点的 R0~R2 寄存器可见。选择 Processor Views Memory 选项,打开 ARM 存储器显示窗口。在 Start Address 输入框中输入准备查看的内存区域首地址 0x9000。

10、调试映像文件

打开调试窗口。为了便于调试,观察各个寄存器和存储器的变化情况。

11、运行程序观察记录结果

在 AXD 中,选择 Execute Step 选项,或者 F10 键,单步运行程序,查看相关寄存器和存储器相应地址上的变化。

按下F10

寄存器地址变化:

r0

r1

r2

0x00000000

0x00000000

0x00000000

0x00000000

0x00000001

0x00000001

0x00000001

0x00000001

0x00000002

0x00000003

0x00000002

0x00000003

0x00000003

0x00000006

0x00000003

0x00000006

0x00000004

0x0000000A

0x00000004

0x0000000A

0x00000005

0x0000000F

0x00000005

0x0000000F

0x00000006

0x00000015

0x00000006

0x00000015

0x00000007

0x0000001C

0x00000007

0x0000001C

0x00000008

0x0000001C

0x00000008

0x00009000

存储器地址变化:

Address

0

1

2

3

4

5

6

7

8

9

a

b

c

d

e

f

0x00009000

10

00

FF

E7

00

E8

00

E8

10

00

FF

E7

00

E8

00

E8

1C

00

00

00

00

E8

00

E8

10

00

FF

E7

00

E8

00

E8

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/388073.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于VScode和C++ 实现Protobuf数据格式的通信

目录 1. Protobuf 概述1.1 定义1.2Protobuf的优势 2. Protobuf 语法3、序列号和反序列化3.1 .pb.h 头文件3.2 序列化3.3 反序列化 4、测试用例 Protobuf详细讲解链接 1. Protobuf 概述 1.1 定义 protobuf也叫protocol buffer是google 的一种数据交换的格式,它独立…

熵权法确定权重

熵权法(Entropy Weight Method, EWM)是一种在综合考虑各因素提供信息量基础上计算综合指标的数学方法,属于客观综合定权法,在确定权重时更有说服力。该方法主要根据各指标传递给决策者的信息量大小来确定权重。在信息论中&#xf…

[RoarCTF 2019]Easy Calc1

打开题目 查看源码,看到 看到源代码有 calc.php,构造url打开 看到php审计代码, 由于页面中无法上传num,则输入 num,在num前加入一个空格可以让num变得可以上传,而且在进行代码解析时,php会把前…

库存超卖问题解决方式

文章目录 超卖问题解决方式什么是库存超卖问题?乐观锁和悲观锁的定义超卖问题解决方式一、悲观锁1.jvm单机锁2.通过使用mysql的行锁,使用一个sql解决并发访问问题3.使用mysql的悲观锁解决4. 使用redis分布式锁来解决 二、乐观锁解决1.版本号2. CAS法&…

数据结构第1天作业 7月31日

2.3按位置操作 1&#xff09;按照位置插入数据 void Insert_seqlist_single(Seqlist* sq,int arr_sub,int num){if(sq->posN ){ //判断顺序列表是否为满printf("error");return;}else if(arr_sub<0||arr_sub>sq->pos){printf("error…

React组件生命周期

一张图解释 React 类组件生命周期方法 React 类组件的生命周期可以分为三个主要阶段&#xff1a; 挂载&#xff08;Mounting&#xff09; 更新&#xff08;Updating&#xff09; 卸载&#xff08;Unmounting&#xff09; 挂载阶段 在组件实例被创建并插入到 DOM 中时调用…

SpringSecurity登录认证流程及源码分析

目录 一 作用 二 流程及源码分析 一 作用 spring security作为spring家族中的一员&#xff0c;它的主要作用有两个&#xff0c;分别是认证和授权。 我们以前在实现登录功能的时候&#xff0c;前端会传来用户名和密码&#xff0c;然后我们根据前端传来的数据从用户表中的数据进…

Java高级Day18-集合

62.集合 之前保存多个数据元素使用数组&#xff0c;但数组有以下缺点&#xff1a; 长度开始必须指定&#xff0c;指定后不可修改 保存的必须为同一类型的元素 使用数组进行增加/删除元素的代码比较麻烦 集合 可以动态的保存任意多个对象 提供了一系列方便操作对象的方法 …

河南萌新联赛2024第(三)场:河南大学

传送门&#xff1a;河南萌新联赛2024第&#xff08;三&#xff09;场&#xff1a;河南大学_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ B 正则表达式 思路&#xff1a;模拟 代码&#xff1a; #include<bits/stdc.h> using namespace std; typedef long lo…

vue3+fetch请求+接收到流式的markdown数据+一边gpt打字机式输出内容,一边解析markdown语法+highlight.js实现代码高亮

这个问题终于解决了&#xff01;好开心。 先看最终效果&#xff1a; video_20240724_141543_edit 项目背景&#xff1a;vue3 场景&#xff1a;像gpt一样可以对话&#xff0c;当用户发送问题之后&#xff0c;ai回复&#xff0c;ai是一部分一部分回复&#xff0c;像打印机式输出…

Moving Object Segmentation: All You Need Is SAM(and Flow) 论文详解

系列文章目录 文章目录 系列文章目录前言摘要1 引言2 相关工作3 SAM Preliminaries4 帧级分割Ⅰ&#xff1a;以流作为输入5 帧级分割Ⅱ&#xff1a;以流为提示6 序列级掩膜关联7 实验7.1 数据集7.2 评价指标7 .3 实施细节7.4 消融实验7.5 定量结果7 .定性可视化 8 结论致谢附录…

Ollama0.3.0 + llama3.1本地部署

Ollama0.3.0 llama3.1本地部署 安装Ollama 官网下载安装包 https://ollama.com/download ​​ 根据系统选择对应版本 安装完成后&#xff0c;电脑右下角会出现ollama程序图标&#xff0c;表示ollama正在运行。 ​​ 打开cmd命令 下载Llama3.1 输入ollama&#xff0c…

从“线缆迷宫”到“数字通途”:一机一网助力成天泰园区网络升级

(文 林海宾/深圳速锦网络科技有限公司) 林海宾,现任深圳速锦网络科技有限公司(以下简称速锦网络)的项目总监,一个入行十年、经验老道的数字化升级”操盘手“。他曾经主导过中国农业银行深圳分行130多个网点以及美的珠海工厂等数字化建设升级项目。在2024年的五一,他帮助深圳市…

【MATLAB源码】机器视觉与图像识别技术(7)续---BP神经网络

系列文章目录在最后面&#xff0c;各位同仁感兴趣可以看看&#xff01; BP神经网络 第一节、BP网络定义第二节、BP网络结构及其特点第三节、信息传播方式 信息的正向传播&#xff1a;实质是计算网络的输出误差的反向传播&#xff1a;实质是学习过程第四节、 BP网络的算法流程…

视频怎么在尽量不损害画质的前提下压缩?试试这4款视频压缩神器

4个视频压缩神器&#xff0c;帮你在不损画质的前提下满足压缩需求&#xff1a; 1、嗨格式压缩大师 关键词&#xff1a;高效、批量 直达链接>>yasuo.hgs.cn 嗨格式压缩大师是一款免费的文件压缩工具&#xff0c;支持视频、图片、PDF、PPT等文件快速、批量压缩&#xff…

代码随想录 day 28 贪心

第八章 贪心算法 part02 贪心 局部最优解推出全局最优 &#xff0c;而且想不到反例&#xff0c;那么就试一试贪心 将问题分解为若干个子问题 找出适合的贪心策略 求解每一个子问题的最优解 将局部最优解堆叠成全局最优解 只要想清楚 局部最优 是什么&#xff0c;如果推导出全局…

XR-Frame 计算相机与场景物体的距离

如下哦 const cameraTransform this.scene.getElementById(camera).getComponent(transform)const modelTransform this.scene.getElementById(yourNodeId).getComponent("transform");if (cameraTransform.worldPosition.distanceTo(modelTransform.worldPosition…

pip install albumentations安装下载遇19kB/s超级慢细水管解决办法

albumentations 是一个用于图像增强的 Python 库&#xff0c;它提供了丰富的图像变换功能&#xff0c;可以用于数据增强&#xff0c;从而提高深度学习模型的泛化能力。 直接安装命令&#xff1a; pip install albumentations但是如果半夜遇到这种19kB/s的下载速度 为头发着想&…

【C++】C++11新增语法(右值引用、完美转法)

文章目录 1.C11新增常用语法1.1 统一的列表初始化1.2 initializer_list初始化1.3 声明相关1.4 继承与多态相关 2. 右值引用与移动语义2.1 左值引用与右值引用2.2 右值引用与移动语义的使用场景2.3 右值引用引用左值(move) 3. 完美转发4. 新的类功能4.1 新增两个默认成员函数4.2…

记录两道关于编码解码的问题

环境&#xff1a;php环境即可&#xff0c;也可使用phpstudy。 参考文章: 深入理解浏览器解析机制和XSS向量编码-CSDN博客(很重要) HTML 字符编码&#xff08;自我复习&#xff09;-CSDN博客 例题1&#xff1a; <?php header("X-XSS-Protection: 0"); $xss …