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

相关文章

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

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

PyCharm接入DeepSeek实现AI编程的操作流程

《PyCharm接入DeepSeek实现AI编程的操作流程》DeepSeek是一家专注于人工智能技术研发的公司,致力于开发高性能、低成本的AI模型,接下来,我们把DeepSeek接入到PyCharm中... 目录引言效果演示创建API key在PyCharm中下载Continue插件配置Continue引言

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件