网站备案单位查询系统app开发定制专家公司

张小明 2026/1/2 11:45:24
网站备案单位查询系统,app开发定制专家公司,重庆有网站公司,app研发ARM 汇编语言程序设计 一、ARM 汇编实验 二、 ARM 汇编语言程序设计 1. GNU ARM 汇编器支持的伪操作 1.1. 伪操作概念 1.2. 数据定义(Data Definition)伪操作 1.3. 汇编控制伪操作 2. ARM 汇编器支持的伪指令 2.1. ADR 伪指令 2.2. LDR 伪指令 3. ARM 汇编语言的程序结构 3.1…ARM 汇编语言程序设计一、ARM 汇编实验二、 ARM 汇编语言程序设计1. GNU ARM 汇编器支持的伪操作1.1. 伪操作概念1.2. 数据定义(Data Definition)伪操作1.3. 汇编控制伪操作2. ARM 汇编器支持的伪指令2.1. ADR 伪指令2.2. LDR 伪指令3. ARM 汇编语言的程序结构3.1. 格式3.2. 过程调用标准 AAPCS4. ARM 伪指令实验4.1. 实验目的4.2. 实验原理4.3. 实验内容4.4. 实验现象5. ARM 内联汇编(C和汇编混合编程)实验5.1. GCC内联汇编的一般格式:三、 Cortex-A7 GPIO 点灯 编程1. GPIO 功能介绍1.1. STM32MP1 芯片的 GPIO 控制器详解1.2. 常用寄存器详解2. GPIO 控制 控制 点灯 实验2.1. 找打板子上的 led2.2. 找到对应的原理图(主板原理图)2.3. 打开芯片手册,查看led控制寄存器3. 从零写裸机启动代码3.1. 启动代码分析3.2. 汇编点亮LED3.3. 汇编调用C代码一、ARM 汇编实验参考:eclipse中创建汇编工程二、 ARM 汇编语言程序设计1. GNU ARM 汇编器支持的伪操作1.1. 伪操作概念在 ARM 汇编语言程序中,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪操作标识符(directive),它们所完成的操作称为伪操作。伪操作在源程序中的作用是为了完成汇编程序做各种准备工作的,这些伪操作仅在汇编过程中起作用,一旦汇编结束,伪操作的使命就完成。在 ARM 的汇编程序中,伪操作主要有符号定义伪操作、数据定义伪操作、汇编控制伪操作及其杂项伪操作等。1.2. 数据定义(Data Definition)伪操作数据定义伪操作一般用于为特定的数据分配存储单元,同时可完成已分配存储单元的初始化。常见的数据定义伪操作有.byte、.short、.long、.quad、.float、.string、.asciz、.ascii和.rept。数据定义伪操作如下。1.3. 汇编控制伪操作汇编控制伪操作用于控制汇编程序的执行流程,常用的汇编控制伪操作包括以下几条。1、.if、.else、.endif2、.macro、.endm.macro伪操作可以将一段代码定义为一个整体,称为宏指令,然后就可以在程序中通过宏指令多次调用该段代码。其中,$标号在宏指令被展开时,标号会被替换为用户定义的符号。宏操作可以使用一个或多个参数,当宏操作被展开时,这些参数被相应的值替换。宏操作的使用方式和功能与子程序有些相似,子程序可以提供模块化的程序设计、节省存储空间并提高运行速度。但在使用子程序结构时需要保护现场,从而增加了系统的开销,因此,在代码较短且需要传递的参数较多时,可以使用宏操作代替子程序。3、.mexit.mexit用于从宏定义中跳转出去。4、杂项伪操作ARM 汇编中还有一些其他的伪操作,在汇编程序中经常会被使用,包括以下几条。2. ARM 汇编器支持的伪指令2.1. ADR 伪指令ADR 伪指令为小范围地址读取伪指令。ADR 伪指令将基于 PC 相对偏移地址或基于寄存器相对偏移地址值读取到寄存器中,当地址值是字节对齐时,取值范围为−255~255,当地址值是字对齐时,取值范围为−1020~1020。当地址值是 16 字节对齐时其取值范围更大。示例:.text .global _start _start: mov r0,#0x9nop mov r1,#0x7adr pc, add_sub;adr的用法:给pc加add_sub,可以查看反汇编 bl add_sub stop: b stop add_sub:addr2, r0,r1 sub r3, r0,r1 mul r4, r0,r1 mov pc,lr2.2. LDR 伪指令LDR 伪指令装载一个 32位的常数或一个地址到寄存器。当要加载的常量没有超过MOV或者MVN指令的范围时用MOV或MVN指令来替换LDR伪指令,如果超过了MOV或者MVN的范围时,汇编器会将常数先放入缓存池中,同时用一条基于PC偏移地址的LDR指令来读取该常数。3. ARM 汇编语言的程序结构3.1. 格式在 ARM(Thumb) 汇编语言程序中可以使用.section来进行分段,其中每一个段用段名或者文件结尾为结束,这些段使用默认的标志,如a为允许段,w 为可写段,x 为执行段。在一个段中,我们可以定义.text、.data、.bss子段。由此我们可知道,段可以分为代码段、数据段及其他存储用的段,.text(正文段)包含程序的指令代码:.data(数据段)包含固定的数据,如常量、字符串:.bss(未初始化数据段)包含未初始化的变量、数组等,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行的映像文件。.section.datainitialized data here.section .bssuninitialized data here.section .text .globl _start _start:instruction code goes here3.2. 过程调用标准 AAPCS为了使不同编译器编译的程序之间能够相互调用,必须为子程序间的调用规定一定的规则。AAPCS就是这样一个标准。所谓 AAPCS,其英文全称为 Procedure Call Standard for the ARM Architecture(AAPCS),即 ARM体系结构过程调用标准。它是 ABI(Application Binary Interface(ABI)for the ARMArchitecture (base standard) [BSABI])标准的一部分。ARM寄存器使用规则AAPCS中定义了 ARM寄存器使用规则如下:子程序间通过寄存器R0、R1、R2、R3来传递参数。如果参数多于4个,则多出的部分用堆栈传递。被调用的子程序在返回前无须恢复寄存器R0-R3的内容。在子程序中,使用寄存器R4-R11来保存局部变量。如果在子程序中使用到了寄存器R4-R11中的某些寄存器,子程序进入时必须保存这些寄存器的值,在返回前必须恢复这些寄存器的值;对于子程序中没有用到的寄存器则不必进行这些操作。在 Thumb 程序中,通常只能使用寄存器R4-R7来保存局部变量。寄存器R12用做子程序间scratch寄存器(用于保存SP,在函数返回时使用该寄存器出栈),记作ip。在子程序间的连接代码段中常有这种使用规则。寄存器R13用做数据栈指针,记作sp。在子程序中寄存器R13不能用做其他用途。寄存器sp在进入子程序时的值和退出子程序时的值必须相等。寄存器R14称为连接寄存器,记作lr。它用于保存子程序的返回地址。如果在子程序中保存了返回地址,寄存器R14则可以用做其他用途。寄存器R15是程序计数器,记作pc。它不能用做其他用途。4. ARM 伪指令实验4.1. 实验目的掌握 ARM 汇编语言的基本使用和一些伪指令的使用;熟悉 eclipse 开发工具建立汇编工程和仿真;4.2. 实验原理根据上面阐述 RAM 汇编语言的使用语法和功能,编写汇编程序,实现将存放在两个内存中的数据相加的操作。4.3. 实验内容汇编程序设计如下.text .global _start _start: .code32mov r0,#0x9nop mov r1,#0ldr r2,=myarray loop: ldr r3,[r2],#4addr1,r1,r3cmpr3,#0bne loop stop: b stop myarray: .word6.word24.word12.word0.end4.4. 实验现象1、 单击“”单步,查看 Rn 寄存器的变化。三个数据的和保存在 R1 中,最终 R1 的数值为 42。5. ARM 内联汇编(C和汇编混合编程)实验5.1. GCC内联汇编的一般格式:asm(代码列表:输出运算符列表:输入运算符列表:被更改资源列表);在代码列表中,每个汇编语句都要用""括起来。asm("add %0,%1,%2\n\t""mov r1,%1\n\t":"+r"(sum):""(a),"r"(b):"r0");在C代码中嵌入汇编需要使用asm关键字,其用法为asm();" "引号内部包含的是指令部分":参数输出部分,函数的返回值:参数输入部分,函
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

2019销售网站开发与设计现状网站怎样做多语言切换

最新版基于超螺旋滑模观测器的永磁同步电机无位置传感器控制策略 全套仿真、公式推导、配套论文以及调试过程如图 补充最新资料最近在实验室折腾永磁同步电机的无感控制,发现超螺旋滑模观测器这玩意儿真香。传统滑模观测器抖得跟筛糠似的,信号噪声能把人…

张小明 2025/12/28 17:32:34 网站建设

网站建设优化是什么鬼?住建官网查询

NGBoost-shap方法分类器,由斯坦福吴恩达团队提出,属于集成模型的一种2019年提出的,算是比较新的方法了,可以用于回归和分类 本项目是用NGBoost作为分类器,自带二分类数据集,可以直接运行,对模型…

张小明 2025/12/26 11:10:20 网站建设

响应式自适应织梦网站模板ui做网站实例

Excalidraw白板工具集成AI后学习成本更低 在远程协作成为常态的今天,技术团队如何快速、准确地表达复杂系统结构?一个常见的场景是:产品经理在会议中说“我们需要一个三层架构”,工程师点头示意理解,但每个人脑中的画…

张小明 2025/12/26 11:10:17 网站建设

网站设计和网站建设地推是什么意思

场景,我们写了很多页面,但是一个一个人工智能去匹配不太可能。 功能,运行Python脚本,自动生成主页面引入的配置.js ,这样主页面和脚本不用动,每次实时生成配置文件。 一共三个文件。主文件+配置…

张小明 2025/12/31 8:07:28 网站建设

北京网站建设是什么意思制作网站的步骤

百度网盘下载加速全攻略:Mac用户如何轻松突破限速瓶颈 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘的蜗牛下载速度而烦恼…

张小明 2025/12/26 13:01:01 网站建设

手机上怎么建设网站安阳网课

“网线”只是以太网最不起眼的“皮肤”,它的“真身”要庞大和硬核得多。 你家里插电脑的那根 RJ45 蓝线(双绞线)是以太网的一种。 但 224 Gbps 极速怪兽,指的是数据中心里的“超级血管”。1. 什么是“以太网”?(Ethern…

张小明 2025/12/26 13:00:59 网站建设