3.14号arm

1. 计算机基础理论

1.1 计算机的组成

输入设备:将数据转换成计算机可以识别,存储,处理的形式,发送到计算机中

输出设备:将计算机对程序和数据的运算结果输送到外部的设备

存储器:用于将数据保存的模块。

有寄存器,存在于CPU内部,用于暂时存放数据。CPU访问没有延时。

高速缓存

内存

外部存储

运算器:运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和 状态条件寄存器组成,它是数据加工处理部件,完成计算机的各种算术和逻辑运算。

控制器:控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。 它是计算机指挥系统,完成计算机的指挥工作,也是计算机实现“程序存储控制”的基础

2.指令和指令集

机器指令:机器指令是处理器能够识别的计算机指令,当处理器获取到一个机器指令,就可以让机器实现某一个特定的运算

汇编指令:每一个汇编指令都是一条机器指令的标识,当一条汇编指令被执行时,也可以让机器实现某一个特定的运算

指令集:汇编指令的集合

3.编译的基本原理

编译过程:

预处理:展开以“#”开头的文件展开

编译:检查语法错误,没有错误会将程序编译为汇编文件 s

汇编:将汇编文件编译为二进制文件

链接:将文件中调用的函数的库信息链接到当前文件里,生产一个可执行的二进制文件

4.精简指令集和复杂指令集

基于精简指令集(RISC)设计cpu核心时,选取一些使用最为频繁比较简单的指令组成指令集,对于精简指令集来说具备以下特性:

1.精简指令集每一天指令的执行周期固定,基本都是单周期指令

2.精简指令集每一条指令的长度也是固定的

复杂指令集(CISC)追求核心功能的完善性,将实现所以计算的各个指令都放在一起组成指令集 复杂指令集有以下特征:

1.指令的执行周期不固定

2.指令的长度不固定

基于复杂指令集生产的芯片在功耗、体积、成本方面都要高于精简指令集芯, 但是复杂指令集芯片性能比精简指令集更强。

2. ARM的相关理论

2.1 ARM架构

不同的ARM精简指令集组成不同的ARM架构

2.2 ARM内核

基于不同的ARM架构设计出的不同的CPU核心就是ARM内核

2.3 SOC(system on chip)

将系统关键部件集成到一块芯片上

2.4 ARM的工作模式

2.5 ARM处理器的寄存器组织

2.6 ARM处理器中的一些特殊功能寄存器

R15寄存器又被称为(PC:program counter)程序计数器。

PC寄存器保存即将被从内存中取出来的指令的地址

当PC保存的指令地址被处理器发送给内存之后PC的值会自动向下加一条指令的大小, 这也是程序可以继续向下顺序执行的原因

R14又被称为(LR:link register)链接寄存器 LR寄存器的作用是当执行指令时进行程序跳转时,LR会保存跳转指令下一条指令的地址,方便程序返回

R13寄存器又被称为(SP:stack pointer)栈指针寄存器 SP寄存器保存栈内存栈顶的地址,对一些临时数据进行压栈出栈操作时需要使用SP的值来找到栈区位置

CPSR寄存器又叫(current program status register)当前程序状态寄存器

这个寄存器的作用是保存当前程序的工作状态

工作状态中包含程序的工作模式、中断禁止位以及程序的运算结果条件位等信息

SPSR寄存器又叫(saved program status register)被保存的程序状态寄存器

这个寄存器当处理器因为各种异常切换到异常模式工作时会将CPSR值提前保存到SPSR中,处理器处理完异常之后会将SPSR的值 赋值给CPSR,用于恢复处理器的工作状态

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

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

相关文章

phy接口不用网络变压器

phy接口不用网络变压器 Hqst华强盛导读:网络变压器的作用原理是基于电磁感应的原理。当电流通过一个线圈时,会产生一个磁场。如果将另一个线圈放置在这个磁场中,磁场就会穿过另一个线圈,从而在另一个线圈中产生电流。这个过程被称…

识别和定位 - 实现工业自动化及生产数字化,推动现代工业4.0

工业4.0的定义 工业 4.0 是指将智能数字化技术集成到制造和工业流程,包括工业物联网网络、人工智能、大数据、机器人和自动化等一系列技术。工业 4.0 能帮助企业实现智能制造,建立智能工厂,目标是提高生产力、效率和灵活性,同时在…

vue2之过滤器

过滤器 过滤器的实现类似Django的过滤器。 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>过…

程序人生——Java数组和集合使用建议(1)

目录 引出数组和集合建议60&#xff1a;性能考虑&#xff0c;数组是首选建议61&#xff1a;若有必要&#xff0c;使用变长数组建议62&#xff1a;警惕数组的浅拷贝 建议63&#xff1a;在明确的场景下&#xff0c;为集合指定初始容量建议64&#xff1a;多种最值算法&#xff0c;…

Java Day 10 io流

IO流 1、前置知识 字符集1.1 标准ASCII1.2 GBK编码1.3 UTF-321.4 UTF-81.5 编码和解码方法 2、IO流2.1 流的分类2.2 FileInputStream2.2.1 常用方法 2.3 FileOutputStram2.3.1 常用方法2.3.2 文件复制案例 2.4 释放资源的方式2.4.1 try-catch-finally2.4.2 try-with-resource 1…

【Shiro反序列化漏洞】Shiro-550反序列化漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收…

【C++】手撕vector类(从会用到理解)

一、标准库中的vector类 1.1 vector类介绍 1.2 vector的常用接口 1.2.1 常用的构造函数 1.2.2 容量操作接口 &#xff08;1&#xff09;size &#xff08;2&#xff09;capacity &#xff08;3&#xff09;empty &#xff08;4&#xff09;resize &#xff08;5&#…

[LVGL]:MACOS下使用LVGL模拟器

如何在MACOS下使用lvgl模拟器 1.安装必要环境 brew install sdl2查看sdl2安装位置&#xff1a; (base) ➜ ~ brew list sdl2 /opt/homebrew/Cellar/sdl2/2.30.1/bin/sdl2-config /opt/homebrew/Cellar/sdl2/2.30.1/include/SDL2/ (78 files) /opt/homebrew/Cellar/sdl2/2.3…

VMware workstation的安装

VMware workstation安装&#xff1a; 1.双击VMware-workstation-full-9.0.0-812388.exe 2.点击next进行安装 选择安装方式 Typical&#xff1a;典型安装 Custom&#xff1a;自定义安装 选择程序安装位置 点击change选择程序安装位置&#xff0c;然后点击next 选择是否自动…

KMP-字符串查找算法

数据结构、算法总述&#xff1a;数据结构/基础算法 C/C_禊月初三的博客-CSDN博客 问题&#xff1a;假设现在我们面临这样一个问题&#xff1a;有一个文本串S&#xff0c;和一个模式串P&#xff0c;现在要查找P在S中的位置&#xff0c;怎么查找呢&#xff1f; 暴力匹配 即2层循…

前端路由跳转bug

路由后面拼接了id的千万不能取相近的名字&#xff0c;浏览器分辩不出&#xff0c;只会匹配前面的路径 浏览器自动跳转到上面的路径页面&#xff0c;即使在菜单管理里面配置了正确的路由 跳转了无数次&#xff0c;页面始终不对&#xff0c;检查了路由配置&#xff0c;没有任何问…

【C语言】字符与字符串---从入门到入土级详解

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.字符类型和字符数组&#xff08;串&#xff09;简介 1.ASCII 2.定义&#xff0c;初始化&#xff0c;使用 1>字符的定义及初始化 2>字符串的定义及初始化 二.…