linux 硬件 arm架构 汇编语言

news/2024/12/22 2:08:26/
1.cortex
       1. Cortex-A 低功耗 消费类
ARM Cortex-A 系列处理器是一种广泛应用于 移动设备、嵌入式系统和物联网的高效能处理器,因其低功耗和高性能的特点而受到青睐。
       2. Cortex-R 实时性
Cortex-R处理器针对高性能实时应用,例如硬盘控制器(或固态驱动控制器)、企业中的网络设备和打印机、消费电子设备(例如 蓝光播放器和媒体播放器)、以及汽车应用(例如安全气囊、制动系统和发动机管理)。
        3.Cortex-M 高性能,偏控制
        面向各类嵌入式应用的 微控制器内核
2.ARM9
        指令集架构(版本): armV4
         程序执行的过程: 预取 译码 执行
3.处理器工作模式
        1.User:非特权模式,大部分任务执行在这种模式    用户模式
        2.FIQ:当一个高优先级(fast)中断产生时会进入这种模式。 快中断
        3.IRQ:当一个低优先级(normal)中断产生时会进入这种模式。 慢中断
        4.Supervisor:当复位或软中断指令执行时会进入这种模式。 SVC模式  管理模式
        5.Abort:当存取异常时将会进入这种模式。 中止模式
        6.Undef:当执行未定义指令时会进入这种模式。 未定义
        7.System:使用和User模式相同寄存器集的特权模式。 系统模式
        Cortex-A特有模式
                Monitor:是为了安全而扩展出的用于执行安全监控代码的模式,也是一种特权模式。                                                                                                                                          监护模式
4.CPSR 程序状态寄存器
        条件位:
                 N = Negative result from ALU
                 Z = Zero result from ALU
                 C = ALU operation Carried out or borrow
                 V = ALU operation oVerflowed
        Q 位:
                仅ARM v5TE-J架构支持
                指示饱和状态
        J
                仅ARM v5TE-J架构支持
                  T=0;J = 1 处理器处于 Jazelle 状态
                也可以和其他位组合
        DNM Do Not Modify
                GE[3:0] 大于或等于( 当执行 SIMD 指令时有效 )
                IT[7:2] IF….THEN….指令执行状态位
        E 位: 大小端控制位
        A位: A=1 禁止不精确的数据异常
        中断禁止位:
                I = 1: 禁止 IRQ.
                F = 1: 禁止 FIQ
        T Bit
                T = 0;J=0; 处理器处于 ARM 状态
                T = 1;J=0 处理器处于 Thumb 状态
                T = 1;J=1 处理器处于 ThumbEE 状态
        Mode 位:
                处理器模式位
                00000 User mode; 10001 FIQ mode; 10011 SVC mode;
                10111 Abort mode; 11011 Undfined mode; 11111 System;
                10110 Monitor mode;10010 IRQ
5.异常处理
        当异常产生时, ARM core:
                拷贝 CPSR 到 SPSR_<mode>
                设置适当的 CPSR 位:
                        改变处理器状态进入 ARM 态
                        改变处理器模式进入相应的异常模式
                        设置中断禁止位禁止相应中断 (如果需要)
                保存返回地址到 LR_<mode>
                设置 PC 为相应的异常向量
        返回时, 异常处理需要:
                从 SPSR_<mode>恢复 CPSR
                从LR_<mode>恢复 PC
                Note:这些操作只能在 ARM 态执行
6.ARM汇编语言程序格式      
        ARM汇编语言是以 (section) 为单位来组织源文件的。段是相对独立
的、具有特定名称的、不可分割的指令或者数据序列。
        段又可以分为代码段和数据段,代码段存放执行代码,数据段存放代
码运行时需要用到的数据。一个 ARM 源程序至少需要一个代码段,大的程
序可以包含多个代码段和数据段。
        ARM指令集可以分为六大类
                1.分别为数据处理指令 ( 完成 CPU 内部的计算)
                2. Load/Store指令 ( 完成 CPU 与内存 IO 外设之间的数据传输)
                3. 跳转指令 ( 完成程序的跳转)
                4. 程序状态寄存器处理指令 ( 完成 CPSR 的管理 )
                5. 协处理器指令 ( 完成 CPU 扩展功能的实现 )
                6. 异常产生指令 ( 用户程序异常触发 )
        函数传参规则:
                4个以内:r0~r3
                大于4个的使用栈传递
                返回值: r0
         立即数: 一个数(或其按位取反后)循环右移偶数位后所有的1能放进低8位中
	preserve8area reset, code, readonlycode32entrystartldr sp, =0x40001000mov r0, #1mov r1, #2mov r2, #3mov r3, #4import c_addbl c_addnopb startexport asm_add
asm_addstmfd sp!, {r4-r12, lr}   ; 保护现场add r0, r0, r1ldmfd sp!, {r4-r12, pc}   ; 恢复现场end

 

http://www.ppmy.cn/news/1520333.html

相关文章

挂载5T大容量外接硬盘到ubuntu

挂载5T大容量外接硬盘到ubuntu S1&#xff1a;查看硬盘 使用 $ sudo fdisk -l找到对应盘&#xff0c;例如下图所示 /dev/sdc S2: 创建分区 使用 $ sudo fdisk /dev/sdc对上硬盘进行创建分区&#xff1b;可以依次使用以下指令 m &#xff1a;查看命令&#xff1b; g &…

SQL 中 LIKE 和 REGEXP 的相同点与不同点解析

SQL 中 LIKE 和 REGEXP 的相同点与不同点解析 在数据库查询中&#xff0c;字符串匹配是非常常见的需求&#xff0c;而 SQL 提供了多种方式来实现这一功能&#xff0c;其中 LIKE 和 REGEXP 是两种常用的操作符。虽然它们都能用于字符串匹配&#xff0c;但它们在工作原理、匹配精…

前端面试:webSocket如何兼容低浏览器?

WebSocket 是一种用于全双工通信的协议&#xff0c;它可以在客户端和服务器之间建立持久的连接。尽管现代浏览器广泛支持 WebSocket&#xff0c;但对于一些低版本浏览器或不支持 WebSocket 的环境&#xff0c;我们需要考虑兼容性问题。以下是在低版本浏览器上兼容 WebSocket 的…

Hive Tutorial For Beginners

Hive Tutorial For Beginners 一、Hive历史&#xff08;History of Hive&#xff09; Facebook 在面对日益增长的大数据时&#xff0c;选择了 Hadoop 作为解决方案。 但问题在于&#xff0c;许多用户并不熟悉 Java 或其他编程语言&#xff0c;这使得使用 Hadoop 的 MapReduc…

EtherCAT 转 ModbusTCP 网关

设备简介 本产品是 EtherCAT 和 Modbus TCP 网关&#xff0c;使用数据映射方式工作。 本产品在 EtherCAT 侧作为 EtherCAT 从站&#xff0c;接 TwinCAT 、 CodeSYS 、 PLC等&#xff1b;在 ModbusTCP 侧做为 ModbusTCP 主站&#xff08; Client &#xff09;或从站…

揭秘推荐算法:深度学习如何读懂你的购物心思

时间&#xff1a;2024年09月03日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频&#xff1a;https://xima.tv/1_L8HH40?_sonic0 希望大家帮个忙&#xff01;如果大家有工作机会&#xff0c;希望帮小蒋内推一下&#xff0c…

python判断语句(三)

下一篇持续更新中… 如有错误欢迎指正&#xff01;&#xff01;&#xff01; 文章目录 前言学习内容 布尔类型和比较运算符布尔类型比较运算符总结 if语句的基本格式if语句的注意点总结案例 if else语句注意点总结案例 if elif else语句注意点总结案例 判断语句的嵌套语法格式…

【mysql】mysql目录结构和源码和mysql基础练习

mysql目录结构和源码的说明&#xff1a; 也就是之前说四个位置有提到的两个位置&#xff0c; 1软件安装位置bin 把bin目录加入环境变量就可以直接在命令行调用&#xff0c; "***\MySQL\MySQL Installer for Windows\bin" 2还有一个数据库文件的安装位置 &#…