ARM基础---编程模型---ARM汇编

2024-09-04 02:04
文章标签 基础 模型 编程 arm 汇编

本文主要是介绍ARM基础---编程模型---ARM汇编,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、编程模型

1.1.数据和指令集

1.数据

ARM 采用的是32位架构

 ARM 约定:Byte : 8 bits Halfword : 16 bits (2 byte)Word : 32 bits (4 byte)Doubleword 64-bits(8byte)(Cortex-A处理器)

2.指令

ARM 指令集(32-bit)
Thumb 指令集(16-bit)//一般用于紧急处理指令,arm为32位一次可以取2条该指令,效率高

3. 字节序

也就是所谓的大小端存储,我们的计算机一般是小端存储。

 1.2.处理器的工作模式

共有七种基本工作模式

 1.3.ARM寄存器

ARM 有37个32-Bits长的寄存器.1 个用作PC( program counter)1个用作CPSR(current program status register)5个用作SPSR(saved program status registers)30 个通用寄存器

 pc,lr,sp三者中,pc是唯一的,sp,lr不同的工作模式下不同。

1.4.程序状态寄存器 

寄存器四字节---32位 

 1.条件位

简单的计算结果标志

N=存储计算结果的负值Z=存储计算结果位零C=存储进位借位V=存储溢出

2.大小端控制位

E---大小端控制位  // 0,1 控制

3.中断禁止位

I = 1 --- 中断禁止
F = 1 --- 快中断禁止

4.处理器工作模式定位

七个工作模式,需要5位来控制
10000---user
10001---FIQ
10010---IRQ
10011---SVC
10110---monitor
10111---abord
11011---undfine

1.5.异常处理

异常就是程序正常执行以外的其他情况(复位、中断等等) 

1.6. ARM处理器的发展

1.ARM处理器过去的分类

ARM(数字符)+ 字母(适用场景)  了解一下就行

2.ARM的演变

3大类:Cortex-A --- 低功耗 消费类   环境要求最高 (手机、平板)  Cortex-R --- 实时性 (汽车动力系统)Cortex-M --- 高性能 偏控制  环境要求最底(工厂--- stm32自动化流水线) 

 1.7.ARM指令架构(版本)

例如:ARM9V4

 二、ARM汇编

2.1.常用的两类ARM编译开发环境

2.2.汇编文件格式

不区分大小写,要么大写,要么小写;

.s --- 汇编文件    汇编语言编写.c --- 程序文件    C语言编写.h --- 头文件

2.3.ARM汇编语言程序格式

C语言 --- 以函数为单位汇编 --- 以段为单位           //汇编至少需要一个代码段--- 代码段--- 数据段

 2.4.ARM汇编中常见的伪操作

 C语言中的伪操作有 --- #include--- #define

 2.5.ARM汇编的基本结构举例说明

 2.6.数据处理指令分类

 2.7.数据处理指令

 

 

这篇关于ARM基础---编程模型---ARM汇编的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1134683

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus