arm 位操作
阅读数:135 评论数:0
跳转到新版页面分类
硬件/嵌入式
正文
一、概述
1、LSL=Logic Shift Left
2、LSR=Logic Shift Right
3、ASL=Arithmatic Shift Left
4、ASR=Arithmatic Shift Right
5、ROL=Rotate Shift Left
6、ROR=Rotate Shift Right
二、详解
1、图示
2、示例
例如1101 1010 ,位移数为2:
(1)LSL = 0110 1000
(2)LSR = 0011 0110
(3)ASL = 1100 1000 (LSL指令会清除V状态字,而ASL指令会根据结果来设置或清除V状态字,然而V状态字是CCR Condition Code Register状态寄存器的一部分)
(4)ASR = 1111 0110
相关推荐
一、概述
1、目前常用的arm汇编环境有以下两种:
(1)arm asm: arm公司的汇编器,适合于windows平台下使用。
(2)gnu arm asm:gnu交叉编译工具链中的汇编器,适合于l
一、armv8概述
ARM架构版本号从1-8,ARMv8架构支持以下两种执行状态:
1、aarch64
(1)提供31个64位通用寄存器(其中x30被用来做链接寄存器LR(函数返回地址)),一个64位
全称Prefetch from memory。
1、PLD = prefetch for load
2、PST = prefetch for store
3、L1表示一级缓存,L2表示二级存,L3表示
Vector Base Address Register,在开启MMU的系统,vbar中写入的是虚拟地址。
armv8定义了vbarel1、vbarel2、vbarel3三个基址寄存器。
当中断产生
当访问零寄存器时,所有写操作都被忽略,所有读操作返回0。因为操作寄存器的速度是最快的,这个寄存的作用是提供0这个值,避免操作内存。
零寄存器当用作源寄存器时读操作的结果为零,当用作目标寄存器时则将结果
默认情况下,发生异常时会选择目标异常级别的SP_ELn作为栈指针。例如,当触发到EL1的异常时,就会选择SP_EL1作为栈指针。每个异常级别都有自己的栈指针,SP_EL0、SP_EL1、SP_EL2和