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

张小明 2026/1/8 16:43:59
网站备案单位查询系统,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进行投诉反馈,一经查实,立即删除!

福建漳州东山建设局网站三星网上商城官网

SSH 工具使用与配置全解析 1. sshd 关键字详解 1.1 基本选项 –Q :若缺少 RSA 支持则安静运行。 –t :进入测试模式。 –u length :设置 utmp 结构的长度。 –v :开启详细模式。 –V :打印版本号。 1.2 配置关键字及含义 OpenSSH/Tectia 关键字 值 …

张小明 2026/1/7 2:00:47 网站建设

自己做网站怎么能被访问网站建设好了却收不到

Linux网络连接与Mozilla浏览器使用指南 1. 检查网络连接 网络连接可能在系统安装时就已设置好。测试连接的最快方法就是直接尝试使用。如果是宽带连接,可打开浏览器进行测试;若使用拨号连接,则拨打互联网服务提供商(ISP)的号码。此外,也能借助Linux发行版提供的工具来检…

张小明 2026/1/6 22:46:23 网站建设

创建微网站旅游网站建设报告

3DS无线文件传输终极指南:5个技巧让您告别数据线束缚 【免费下载链接】3DS-FBI-Link Mac app to graphically push CIAs to FBI. Extra features over servefiles and Boop. 项目地址: https://gitcode.com/gh_mirrors/3d/3DS-FBI-Link 还在为3DS文件传输的繁…

张小明 2026/1/6 22:48:29 网站建设

企业网站建设论文文献综述做h5动画网站

中小企业也能玩转大模型:Kotaemon低成本部署策略 在生成式AI席卷各行各业的今天,越来越多的企业开始尝试将大语言模型(LLM)融入业务流程。但对于大多数中小企业来说,“上AI”并不等于“堆资源”。动辄几十万的云服务账…

张小明 2026/1/6 21:57:07 网站建设

河南网站设计公司价格公司主页格式

PyQt模型/视图编程:从便捷小部件到自定义模型 在GUI应用程序开发中,如何高效地展示和管理数据是一个关键问题。PyQt提供了丰富的工具和架构来帮助我们解决这个问题,从便捷的小部件到强大的模型/视图编程。本文将介绍如何使用便捷小部件移除数据,以及如何创建和实现自定义模…

张小明 2026/1/6 21:59:04 网站建设

学做糕点的网站找黄岩做网站企业

课题背景随着互联网技术的快速发展和移动终端的普及,二手交易市场逐渐从传统的线下模式转向线上平台。二手交易平台不仅能够促进资源的循环利用,减少浪费,还为用户提供了便捷的交易渠道。然而,现有的二手交易平台仍存在诸多问题&a…

张小明 2026/1/6 22:01:09 网站建设