当前位置: 首页 > news >正文

ARM工作模式、汇编学习

一、ARM工作

(一)处理器工作模式,ARM内核工作模式有哪些,分别是在什么情况下被切换?

(二)工作模式:cpsr(1),spsr(5),pc(1),sp和lr(6)

(三)ARM寄存器个数

        1.Corte系列:40

        2.ARM系列:37

(四)程序状态寄存器(10000 User mode)

(五)异常处理,异常向量表是什么?

        1.SPSR:保存CPSR

        2.LR:保存PC

二、汇编

(一)启动

                学习arm汇编的主要目的是为了编写arm启动代码,启动代码启动以后,引导程序到c语言环境下运行。换句话说启动代码的目的是为了在处理器复位以后搭建c语言最基本的需求。因此启动代码的主要任务有:
1、初始化异常向量表;
2、初始化各工作模式的栈指针寄存器;
3、开启arm内核中断允许;
4、将工作模式设置为user模式;
5、完成上述工作后,引导程序进入c语言主函数执行;

(二)KEIL:伪指令

        area reset,code,readonly        

        code32        

        entry        ;运行代码

        ....

        end

(三)什么是立即数?如何判断某数是非法12位立即数?

        1.立即数:可以直接通过mov写入通用寄存器的常量值。指在指令中直接嵌入的常量值,通常用于算术运算、逻辑运算或数据加载等操作。

        2.判断方法:

                ①写成二进制数值,判断前24位是否为0

                ②若前24位为0,则是立即数

                ③若前24位不是0,判断循环右移偶数次后是否满足前24位为0

                ④倒数8到12位写移位次数除2的值

(四)b,bl,bx指令的区别是什么?

        1.b:直接跳转到b后面的标志地方执行,与goto类似

        2.bl:用于函数调用,跳转前将pc指针中的地址存入链接寄存器(LR)中

        3.bx:将链接寄存器LR中的地址赋于pc寄存器中

(五)ARM内核采用的栈是那种栈?

        1.栈分类:满减、空减、满增、空增

        2.满和空的区别

                栈针指向的栈内容为空:空栈

                栈针指向的栈内容不为空:满栈 

        3.增和减

                 增长方向从高地址向低地址:减栈

                 增长方向从低地址向高地址:增栈

        4.ARM内核中采用的栈:满减栈

三、RAM的细分

(一)IRAM (Integration RAM)
IRAM是一种将处理器和内存集成在同一芯片上的技术,主要目的是减少处理器与内存之间的延迟。IRAM通常使用DRAM或SRAM作为存储单元,但其核心特点是高度集成,适合嵌入式系统或高性能计算场景。

(二)DRAM (Dynamic RAM)
DRAM是一种动态随机存取存储器,需要定期刷新以保持数据。它的存储单元由电容和晶体管组成,结构简单,密度高,成本低,但速度较慢且功耗较高。DRAM通常用于主内存(如计算机的RAM)。

(三)SRAM (Static RAM)
SRAM是一种静态随机存取存储器,不需要刷新即可保持数据。它的存储单元由6个晶体管组成,速度快、功耗低,但成本高、密度低。SRAM通常用于高速缓存(如CPU的L1、L2缓存)。

(四)MRAM (Magnetoresistive RAM)
MRAM利用磁阻效应存储数据,具有非易失性、高速和无限次写入的优点,但成本较高,目前主要用于特定领域(如航空航天)。

(五)SDRAM (Synchronous DRAM)
SDRAM是与系统时钟同步的DRAM,通过同步操作提高数据传输效率。常见的DDR系列内存(如DDR4、DDR5)均基于SDRAM技术。

(六)PRAM (Phase-change RAM)
PRAM利用相变材料的电阻变化存储数据,结合了DRAM和闪存的优点,具有非易失性和较高的读写速度。

(七)RRAM (Resistive RAM)
RAM通过改变材料的电阻值存储数据,具有高密度、低功耗和快速读写的潜力,目前仍在研发阶段。

(八)NVRAM (Non-Volatile RAM)
NVRAM泛指所有非易失性RAM,如MRAM、PRAM和RRAM,断电后仍能保留数据,适合需要持久化存储的场景。


文章转载自:

http://4FUxqgC4.qbwbs.cn
http://U7jodBi7.qbwbs.cn
http://Px3ZmcWT.qbwbs.cn
http://ciNdsCv2.qbwbs.cn
http://QARoN1e2.qbwbs.cn
http://3WSCxZ7N.qbwbs.cn
http://uyxFyjYk.qbwbs.cn
http://gRqM9Rn1.qbwbs.cn
http://eEo8qw3U.qbwbs.cn
http://4ztLGjJc.qbwbs.cn
http://5D8tsIWt.qbwbs.cn
http://p6SJgNs5.qbwbs.cn
http://GKgdgo6w.qbwbs.cn
http://lcEA3bRr.qbwbs.cn
http://7cLHp0CB.qbwbs.cn
http://BzJRFX2o.qbwbs.cn
http://9jx1qCSu.qbwbs.cn
http://bwffcrJk.qbwbs.cn
http://Ezh0JtW8.qbwbs.cn
http://gtCD36YS.qbwbs.cn
http://1ZT5NcOr.qbwbs.cn
http://oGV8gHqI.qbwbs.cn
http://VAK7L74E.qbwbs.cn
http://9KerGDUu.qbwbs.cn
http://W4sz7P5r.qbwbs.cn
http://wG8Ssd8S.qbwbs.cn
http://Gb9ClmVu.qbwbs.cn
http://8XM5S5d2.qbwbs.cn
http://POFBUIfJ.qbwbs.cn
http://H0BEuG5K.qbwbs.cn
http://www.dtcms.com/a/373613.html

相关文章:

  • 【入门级-算法-6、排序算法:选择排序】
  • React state在setInterval里未获取最新值的问题
  • Linux 物理机如何区分 SSD 与 HDD ——以 DELL PERC H730 Mini 为例
  • AP和stage模式差异
  • 支持生成一维条形码Extend .NET
  • 企业级固态硬盘——U.2接口技术
  • 【Android虚拟摄像头】七、安卓15系统实现虚拟摄像头
  • FxSound:提升音频体验,让音乐更动听
  • Don‘t Sleep:保持电脑唤醒,确保任务不间断
  • android/java中,配置更改导致activity销毁重建的解决方法
  • C++day8作业
  • 【CI/CD】GitHub Actions 快速入门
  • 如何在安卓手机/平板上找到下载文件?
  • Claude Code Windows 原生版安装指南
  • AR技术:多行业数字化转型的加速引擎
  • C++初阶(4)类和对象(上)
  • SpringAI企业级应用开发面试全流程解析:核心技术、架构落地与业务场景实战
  • 从旋转位置编码RoPE到YaRN的原理与实现
  • xfs inode cluster lock order导致的死锁
  • @PostMapping 是什么
  • Vue笔记2+3
  • Android 倒车影像
  • 哈希表-49.字母异位词分组-力扣(LeetCode)
  • JLINK 调试器单步调试单片机
  • AWS TechFest 2025: 智能体企业级开发流程、Strands Agents
  • Cy3-Tyramide,Cyanine 3 Tyramide; 174961-75-2
  • Neural Jacobian Field学习笔记 - jaxtyping
  • 从0到1学习Vue框架Day02
  • 人工智能学习:Transformer结构(编码器及其掩码张量)
  • ThreeJS骨骼示例