day2-ARM处理器概述

2023-10-29

指令集

指令

能够指示处理器执行某种运算的命令称为指令

指令在内存中以机器码(二进制)的方式存在

每一条指令都对应一条汇编

程序是指令的有序集合

指令集

处理器能识别的指令的集合称为指令集

不同架构的处理器指令集不同

指令集是处理器对开发者提供的接口

ARM指令集

大多数ARM处理器支持两种指令集

ARM指令集

所有指令(机器码)都占用32bit存储空间

代码灵活度高、简化了解码复杂度

执行ARM指令集时PC值每次自增4

Thumb指令集

所有指令(机器码)都占用16bit存储空间

代码密度高、节省存储空间

执行Thumb指令集时PC值每次自增2

编译原理

C语言>汇编语言->机器码

机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植

汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码,所以不同的处理器汇编也不一样,即汇编语言也不可移植

C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编,所以C语言可以移植

ARM储存模型

ARM数据类型

ARM采用32为架构,基本数据类型有以下三种

Byte 8bits

Halfword 16bits

Word 32bits

Word型数据在内存的起始地址必须是4的整数倍

Halfword型数据在内存的起始地址必须是2的整数倍

字节序

大端对齐

小端对齐

ARM指令存储

处理器处于ARM状态时

所有指令在内存的起始地址必须是4的整数倍

PC值由其[31:2]决定,[1:0]位未定义

处理器处于Thumb状态时

所有指令在内存的起始地址必须为2的整数倍

PC值由其[31:1]决定,[0]未定义

ARM工作模式

不同模式拥有不同权限

不同模式执行不同代码

不同模式完成不同的功能

按照权限

User为非特权模式(权限较低),其余模式均为特权模式(权限较高)

按照状态

FIQ IRQ SVC Abort Undef属于异常模式,即当处理器遇到异常后会进入对应的模式

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

day2-ARM处理器概述 的相关文章

  • Java代码判断当前操作系统是Windows或Linux或MacOS

    package com magic system public class SystemUtils 判断操作系统是否是 Windows return true 操作系统是 Windows false 其它操作系统 public static
  • 【前端】批量导入和导出Excel数据

    1 准备 excel导入功能需要使用npm包xlsx 所以需要安装xlsx插件 读取和写入都依赖她 npm i xlsx 0 17 0 vue element admin模板提供了一个导入excel数据的文件 我们只需用即可 代码地址 ht
  • Spring3.0纯注解开发-越是高端越简洁

    附 类也称为接口 接口的范围很广泛 注解开发和纯注解开发不同点 1 纯注解新增加注解 configuration springcongfig类表名配置类 component xx springcongfig类 扫包注解 Scope sing
  • 小程序跳转小程序

    小程序如何跳转到其他小程序 微信小程序跳转到其他小程序有两种方式 一种是用组件navigator跳转
  • ARM架构学习(二)——流水线

    本期主题 ARM流水线 往期地址 ARMv7架构学习 ARM流水线 1 流水线概念 2 指令的分解步骤 1 流水线概念 硬件资源总是有限的 有一个明显的方法能改善硬件资源的利用率 这就是pipeline 流水线 技术 其实就是在当前指令结束
  • C4D和3dmax有什么区别?

    很多小伙伴都知道3d Max和C4D都是一款三维制作软件 可是 很少见到游戏公司使用C4D软件制作模型呢 反而设计师们用的最多的就是3dmax 而C4D往往用于广告行业 那么C4D和3d max的区别是什么呢 一 性质不同 1 3Dmax
  • 下面是两种解决Redis击穿问题的方法,并给出相应的Java代码实现。

    Redis击穿问题指的是当一个key在缓存中过期时 恰好有大量并发请求访问该key 导致请求直接打到数据库 引起数据库压力过大 甚至宕机 方法一 使用互斥锁 在访问缓存之前 首先获取一个互斥锁 防止多个请求同时访问数据库 只有一个请求可以访
  • Linux命令·rm

    linux中删除文件和目录的命令 rm命令 rm是常用的命令 该命令的功能为删除一个目录中的一个或多个文件或目录 它也可以将某个目录及其下的所有文件及子目录均删除 对于链接文件 只是删除了链接 原有文件均保持不变 rm是一个危险的命令 使用
  • Allegro PCB封装焊盘介绍(一)

    PCB封装焊盘结构 焊盘结构如图 1所示 图 1焊盘结构 锡膏层 SMT刷锡膏贴片用 一般贴片焊盘要选 跟焊盘等大 阻焊层 把焊盘裸露出来 不开的话 焊盘会被油墨盖住 这样无法焊接哦 一般比焊盘大0 1mm 顶层 底层焊盘 实际焊盘大小 电
  • Pipenv:作为 Python 开发人员为什么应该使用它

    Pipenv 是一个旨在将所有打包世界中最好的东西带到 Python 世界的工具 它将 Pipfile pip 和 virtualenv 整合到一个命令中 它会自动为您的项目创建和管理虚拟环境 并在您安装 卸载包时从您的 Pipfile 添
  • 【ffmpeg基础】ffmpeg音频编码

    一 aac编码 输入raw音频编码为AAC ffmpeg i input wav acodec aac y input aac 通过 acodec来指定音频编码器 视频编码器为 vcodec 也可以使用 c a来指定音频编码器 ffmpeg
  • Git clone 时 出现SSL certificate problem error

    出现这个问题的原因是本地默认开启了SSL认证 但是在本地找不到SSL证书 解决办法就是关掉 SLL认证 git clone 时加上参数 no ssl check 完整的命令应该是 git clone no ssl check https g
  • 通过微信小程序实现登录功能

    后端服务器可以在CSDN上开通 价格优惠 CSDN开发云 https img home csdnimg cn images 20220518054835 png https dev csdn net activity utm source
  • 多线程事务怎么回滚?说用 @Transactional 可以回去等通知了!

    背景介绍 1 最近有一个大数据量插入的操作入库的业务场景 需要先做一些其他修改操作 然后在执行插入操作 由于插入数据可能会很多 用到多线程去拆分数据并行处理来提高响应时间 如果有一个线程执行失败 则全部回滚 2 在spring中可以使用 T
  • springboot整合shiro的坑记录

    首先我参考文章 https blog csdn net Yearingforthefuture article details 117384035 进行学习 由于此文章没有讲springboot的版本 我于是用了idea2022 3 1的默
  • 4大主流CPU处理器技术架构

    推荐阅读 浅谈linux 内核网络 sk buff 之克隆与复制 深入linux内核架构 进程 线程 了解Docker 依赖的linux内核技术 导读 RISC 精简指令集计算机 是一种执行较少类型计算机指令的微处理器 起源于80年代的MI
  • 深度学习模型参数量/计算量(附计算代码)

    参考 https mp weixin qq com s biz MzI4MDYzNzg4Mw mid 2247546551 idx 2 sn f198b6365e11f0a18832ff1203302632 chksm ebb70e63dc
  • arm Linux中dma的cache管理

    概述 前两周有人询问DMA下的cache操作和dma coherent 以前零碎看过代码 临时找 还没有找到 这两天整理了调用流程 也找到了dma coherent的用法 Linux的文档里没有详细说明dma coherent的用法 根据代
  • linux应用程序直接return与exit的区别

    在Linux应用程序中 可以使用 return 语句直接从 main 函数返回 这将导致程序终止并返回给操作系统 然而 有时候使用 exit 函数比直接使用 return 语句更有优势 以下是一些原因 清理资源 exit 函数可以确保在程序
  • linux使用文件描述符0、1和2来处理输入和输出

    文件描述符012 在Linux中 文件描述符0 1和2分别代表标准输入 stdin 标准输出 stdout 和标准错误 stderr 它们用于处理进程的输入和输出 文件描述符0 stdin 文件描述符0是进程的标准输入 通常用于读取用户的输

随机推荐

  • 佳能打印机复印身份证的双面到A4纸上的方法

    1 选择其他功能 页面合并 2 选择来源纸张大小 身份证可以选择A5R大小的 3 选择打印纸张大小 默认A4 4 完成设置 按那个平常的复印将进行扫描 画面上会显示继续扫面R2 然后将身份证翻转放到原来的地方 然后再按扫描 5 最后按界面上
  • centOS7 中安装可视化图形界面

    centOS7 中安装可视化图形界面 一 检查 yum是否可用 输入 yum list 如果出现以下情况说明不可用 二 下载可视化图形界面 2 1 安装 x Windows System 输入 yum groupinstall X Wind
  • html+写入数据库+JDBC更改数据库

    1 HTML部分 2 CSS部分 Login div div div div class input box div div
  • starter-canal 下载并打成依赖放入maven本地仓库

    https github com chenqian56131 spring boot starter canal 下载代码 1 下载完成进入项目根目录starter canal 中 命令行如下 mvn install 2 等待打包完成 ta
  • SpringBoot集成WebSocket实现客户端与服务端长连接通信

    场景 1 WebSocket协议是用于前后端长连接交互的技术 此技术多用于交互不断开的场景 特点是连接不间断 更轻量 只有在关闭浏览器窗口 或者关闭浏览器 或主动close 当前会话对象才会关闭 2 相较于 Http Https 通信只能由
  • python解释器怎么添加_Python解释器的配置

    1 准备工作 安装好Pycharm2017版本 电脑上安装好Python解释器 2 本地解释器配置 配置本地解释器的步骤相对简洁直观 1 单击工具栏中的设置按钮 2 在Settings Preferences对话框中选中 Project I
  • 人脸跟踪开源项目

    https github com xiangdeyizhang FaceTrack ncnn HyperFT https github com qaz734913414 Ncnn FaceTrack Ncnn FaceTrack 基于mtc
  • 数字水印简介

    转自 http baike baidu com view 39205 htm 数字水印 Digital Watermarking 技术是将一些标识信息 即数字水印 直接嵌入数字载体当中 包括多媒体 文档 软件等 或是间接表示 修改特定区域的
  • 经纬度坐标正则验证

    经纬度正则验证表达式 纬度正则表达式 90 至 90 0 8 d 1 d 0 6 90 0 0 6 0 8 d 1 90 经度正则表达式 180 至 180 d 1 9 d 1 0 7 d 0 1 3 d 0 6 d 1 9 d 1 0 7
  • 趣味解C——编程(1)

    前言 题目虽是基础题 旨在用趣味使其乐趣性翻倍 纯属娱乐 解题思路 1 房间 一共n间 我们可以设其为 i 从而定义循环 for i 1 i lt n i 2 服务员 各个服务员都记得自己的使命 ta们没有名字 只知道自己是第几 于是1号最
  • Unity 面试题汇总(三)Unity 基础相关

    Unity 面试题汇总 三 Unity 基础相关 目录 Unity 面试题汇总 三 Unity 基础相关 0 FSM 状态机 HFSM 分层状态机 BT 行为树 的区别 1 什么是协同程序 2 Unity3D中的碰撞器和触发器的区别 3 物
  • 反射概述

    package com kuang reflection 什么叫反射 public class test02 public static void main String args throws ClassNotFoundException
  • SA实战 ·《SpringCloud Alibaba实战》微服务介绍

    微服务化后的问题 一个系统 尤其是大型系统使用微服务架构模式进行搭建和开发时 虽然总体上能够提高研发效率 能够支持更高的并发 也能够提高系统整体的性能和可靠性 以及可维护性 但是在实现细节上还是存在着不少的问题 1 将系统拆分成各个微服务后
  • 御剑的使用

    御剑 1 扫描线程自定义 用户可根据自身电脑的配置来设置调节扫描线程 2 集合DIR扫描 ASP ASPX PHP JSP MDB数据库 包含所有网站脚本路径扫描 3 默认探测200 也就是扫描的网站真实存在的路径文件 我们使用御剑扫描器
  • Java基础8--Scanner类

    Java基础8 Scanner类 java util Scanner 是 Java5 的新特征 我们可以通过 Scanner 类来获取用户的输入 下面是创建 Scanner 对象的基本语法 Scanner s new Scanner Sys
  • 程序员必须知道的十大算法之 快速排序

    快速排序是由东尼 霍尔所发展的一种排序算法 在平均状况下 排序 n 个项目要 nlogn 次比较 在最坏状况下则需要 n2 次比较 但这种状况并不常见 事实上 快速排序通常明显比其他 nlogn 算法更快 因为它的内部循环 innerloo
  • 设计原则与思想:总结课

    文章目录 设计原则与思想 总结课 总结回顾面向对象 设计原则 编程规范 重构技巧等知识点 一 代码质量评判标准 如何评价代码质量的高低 最常用的评价标准有哪几个 如何才能写出高质量的代码 二 面向对象 三 设计原则 四 规范与重构 常见的
  • Win10防止Windows安全中心(Windows Defender)乱删文件

    Windows Defender乱删文件着实让人哭笑不得 还好它还有个排除项 不然只能安个杀毒软件接管它了 点击 开始 点击 设置 开始上面的齿轮图标 打开Windows设置 点击最下面的 更新和安全 点击 Windows安全中心 点击右侧
  • mock详细教程入门这一篇就够了

    1 什么是mock测试 1 png Mock测试就是在测试活动中 对于某些不容易构造或者不容易获取的比较复杂的数据 场景 用一个虚拟的对象 Mock对象 来创建用于测试的测试方法 2 为什么要进行Mock测试 Mock是为了解决不同的单元之
  • day2-ARM处理器概述

    指令集 指令 能够指示处理器执行某种运算的命令称为指令 指令在内存中以机器码 二进制 的方式存在 每一条指令都对应一条汇编 程序是指令的有序集合 指令集 处理器能识别的指令的集合称为指令集 不同架构的处理器指令集不同 指令集是处理器对开发者