linux 硬件 arm架构 汇编语言

news2024/11/13 6:35:14
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位中
	preserve8
	area reset, code, readonly
	code32
	entry

start

	ldr sp, =0x40001000

	mov r0, #1
	mov r1, #2
	mov r2, #3
	mov r3, #4

	import c_add
	bl c_add

	nop
	b start

	export asm_add
asm_add
	stmfd sp!, {r4-r12, lr}   ; 保护现场
	add r0, r0, r1
	ldmfd sp!, {r4-r12, pc}   ; 恢复现场

	end

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在 Cloud TPU 上训练 DLRM 和 DCN (TF 2.x)

本教程介绍如何训练 DLRM 和 DCN v2 排名模型&#xff0c; 用于预测点击率 (CTR) 等任务。查看以下语言版本的备注 设置以运行 DLRM 或 DCN 模型&#xff0c;了解如何设置参数 来训练 DLRM 或 DCN v2 排名模型。 模型输入是数值特征和分类特征&#xff0c;输出是标量 &#xf…

【HuggingFace Transformers】LlamaRotaryEmbedding源码解析

LlamaRotaryEmbedding源码解析 1. LlamaRotaryEmbedding类 介绍2. 逆频率向量3. LlamaRotaryEmbedding类 源码解析3.1 transformers v4.44.2版3.2 transformers v4.41.1版 1. LlamaRotaryEmbedding类 介绍 在LLaMa模型中&#xff0c;LlamaRotaryEmbedding类实现了Rotary Posit…

Elasticsearch 向量数据库本地部署 及操作方法

elasticsearch是个分布式向量数据库&#xff0c;支持多种查找模式。此外还拥有 Metadata、Filtering、Hybrid Search、Delete、Store Documents、Async等能力。本文仅是记录本地测试途中遇到的问题。 一&#xff0c;环境部署 下载软件 首先去官网&#xff0c;选择适合平台下…

Kafka-设计原理

ControllerLeader - PartitionRebalance消息发布机制HW与LEO日志分段 Controller Kafka核心总控制器Controller&#xff1a;在Kafka集群中会有一个或者多个broker&#xff0c;其中有一个broker会被选举为控制器&#xff08;Kafka Controller&#xff09;&#xff0c;它负责管理…

Hyper-v 安装 centOS

一.Hyper-v安装 1. 右键此电脑&#xff0c;点击属性&#xff0c;查看自己的window版本 如果是专业版或者企业版&#xff0c;则无需额外操作&#xff0c;如果是家庭版&#xff0c;则需要先运行一个脚本来进行安装。 参考这一篇&#xff1a;window10 家庭版如何开启Hyper-v-CSDN…

FPGA开发:初识FPGA

FPGA是什么&#xff1f; FPGA的全称是现场可编程门阵列&#xff08;Field Programmable Gate Array&#xff09;&#xff0c;一种以数字电路为主的集成芯片&#xff0c;属于可编程逻辑器件PLD的一种。简单来说&#xff0c;就是能用代码编程&#xff0c;直接修改FPGA芯片中数字…

OceanBase 关于 place_group_by HINT的使用

PLACE_GROUP_BY Hint 表示在多表关联时&#xff0c;如果满足单表查询后直接进行group by 的情形下&#xff0c;在跟其它表进行关联统计&#xff0c;减少表内部联接。 NO_PLACE_GROUP_BY Hint 表示在多表关联时&#xff0c;在关联后才对结果进行group by。 使用place_group_by …

二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)

一、目的 由于部分数据类型频率为1s&#xff0c;从而数据规模特别大&#xff0c;因此完整的JSON放在Hive中解析起来&#xff0c;尤其是在单机环境下&#xff0c;效率特别慢&#xff0c;无法满足业务需求。 而Flume的拦截器并不能很好的转换数据&#xff0c;因为只能采用Java方…

启动.cmd文件一闪而过,看不到报错信息

在window的环境中&#xff0c;双击.cmd文件&#xff0c;有报错信息&#xff0c;但是一闪而过 例如启动zookeeper时&#xff0c;没有zoo.cfg文件会报错&#xff0c;但是启动一闪而过&#xff0c;你看不到报错信息 有文本工具编辑cmd文件&#xff0c;在最后添加 pause 再次启…

Linux 之 lsblk 【可用块的设备信息】

功能介绍 在 Linux 系统中&#xff0c;“lsblk”&#xff08;list block devices&#xff09;命令用于列出所有可用的块设备信息 应用场景 查看存储设备信息&#xff1a;“lsblk” 命令可以帮助你快速了解系统中的存储设备&#xff0c;包括硬盘、固态硬盘、U 盘等。你可以查…

9_4_QTextEdit

QTextEdit //核心属性//获取文本 toPlainText(); toHtml(); toMarkdown(); //输入框为空时的提示功能 placeHolderText(); //只读 readOnly();//定义文本光标 QTextcursor cursorcursor.position(); cursor.selectedText();//核心信号//文本改变 textChanged(); //选中范围 se…

【黑马点评】附近商户

需求 选择商铺类型后&#xff0c;按照距离当前用户所在位置从近到远的顺序&#xff0c;分页展示该类型的所有商铺。 接口&#xff1a; 参数&#xff1a; typeId&#xff1a;商铺类型current&#xff1a;页码x&#xff1a;经度y&#xff1a;纬度 返回值&#xff1a;所有typeId…

LVS 负载均衡集群指南

1. 引言 LVS (Linux Virtual Server) 虚拟服务器&#xff0c;是 Linux 内核中实现的负载均衡技术&#xff0c;以其高性能、高可靠性和高可用性而闻名。LVS 工作在 TCP/IP 协议栈的第四层 (传输层)&#xff0c;通过将流量分配到多个后端服务器&#xff0c;提高系统性能、可用性…

硬件工程师笔试面试知识器件篇——电阻

目录 1、电阻 1.1 基础 电阻原理图 阻实物图 1.1.1、定义 1.1.2、工作原理 1.1.3、类型 1.1.4、材料 1.1.5、标记 1.1.6、应用 1.1.7、特性 1.1.8、测量 1.1.9、计算 1.1.10、颜色编码 1.1.11、公差 1.1.12、功率 1.1.13、重要性 1.2、相关问题 1.2.1、电阻…

数组和指针 笔试题(1)

目录 0.复习 1.笔试题1 2.笔试题2 3.笔试题3 4.笔试题4 5.笔试题5 0.复习 在做笔试题之前&#xff0c;我们首先复习一下数组名的理解 数组名的所有情况&#xff1a; 1.&数组名&#xff0c;取出的是整个数组的地址 2.sizeof&#xff08;数组名&#xff09;&#x…

LLM常见问题(Attention 优化部分)

1. 传统 Attention 存在哪些问题&#xff1f; 传统的 Attention 机制忽略了源端或目标端句子中词与词之间的依赖关系。传统的 Attention 机制过度依赖 Encoder-Decoder 架构上。传统的 Attention 机制依赖于Decoder的循环解码器&#xff0c;所以依赖于 RNN,LSTM 等循环结构。传…

【Transformer】Tokenization

文章目录 直观理解分词方式词粒度-Word字粒度-Character子词粒度-Subword&#xff08;目前最常使用&#xff09; 词表大小的影响参考资料 直观理解 在理解Transformer或者大模型对输入进行tokenize之前&#xff0c;需要理解什么是token&#xff1f; 理工科的兄弟姐妹们应该都…

027集——goto语句用法——C#学习笔记

goto语句可指定代码的跳行运行&#xff1a; 实例如下&#xff1a; 代码如下&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Security.Policy; using System.Text; using System.Threading.Tasks;namespace ConsoleApp2 { //…

采用基于企业服务总线(ESB)的面向服务架构(SOA)集成方案实现统一管理维护的银行信息系统

目录 案例 【题目】 【问题 1】(7 分) 【问题 2】(12 分) 【问题 3】(6 分) 【答案】 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于 Web 系统设计的叙述&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某银行拟将以分行为主体…

是噱头还是低成本新宠?加州大学用视觉追踪实现跨平台的机器手全掌控?

导读&#xff1a; 在当今科技飞速发展的时代&#xff0c;机器人的应用越来越广泛。从工业生产到医疗保健&#xff0c;从物流运输到家庭服务&#xff0c;机器人正在逐渐改变我们的生活方式。而机器人的有效操作和控制&#xff0c;离不开高效的遥操作系统。今天&#xff0c;我们要…