ARM汇编基础

ARM体系平台手册笔记02

GE[3:0]标志位

简介
    在ARMv6中,SIMD指令使用位[19:16]作为结果的单个字节或半字的大于或等于(GE)标志。您可以使用这些标志来控制以后的SEL指令,有关详细信息,请参阅第A4-127页的SEL            
设置规则有以下三种:
    指令为半字操作:
        根据上半字计算的结果,将GE [3:2]设置或清除
        根据下半字计算的结果,将GE [1:0]设置或清除   
    指令位byte操作:
        根据Top byte计算的结果,将GE [3]设置或清除
        根据second byte计算的结果,将GE [2]设置或清除
        根据third byte计算的结果,将GE [1]设置或清除
        根据bottom byte计算的结果,将GE [0]设置或清除
    如果相应计算的结果如下,则每个位都被置位(否则清除):
        对于无符号字节加法,如果结果大于或等于128
        对于无符号半字加法,如果结果大于或等于65536
        对于无符号字节减法,如果结果大于或等于0
        对于有符号运算,如果结果大于或等于0

中断使能位

简介:
A I F是中断使能标志位
A标志位:
    设置时禁用不精确的数据中止。这仅在ARMv6及更高版本中可用。在早期版本中,CPSR和SPSR的位[8]必须被视为保留位
I标志位:
    设置后禁用IRQ中断              
F标志位:
    设置后禁用FIQ中断

模式标志位

简介:
        M[4:0]用来指示模式标志位。
    M[4:0]              Mode               Accessible registers
    0b10000             User               PC, R14 to R0, CPSR
    0b10001             FIQ                PC, R14_fiq to R8_fiq, R7 to R0, CPSR, SPSR_fiq
    0b10001             IRQ                PC, R14_irq, R13_irq, R12 to R0, CPSR, SPSR_irq
    0b10011             Supervisor         PC, R14_svc, R13_svc, R12 to R0, CPSR, SPSR_svc
    0b10111             Abort              PC, R14_abt, R13_abt, R12 to R0, CPSR, SPSR_abt
    0b11011             Undefined          PC, R14_und, R13_und, R12 to R0, CPSR, SPSR_und
    0b11111             System             PC, R14 to R0, CPSR (ARMv4 and above)
    并非模式位的所有组合都定义了一个有效的处理器模式,只能使用那些明确描述的组合

T和J标志位

简介:T和J位选择当前指令集
    J T Instruction set
    0 0 ARM
    0 1 Thumb       T为1时是Thumb指令集
    1 0 Jazelle
    1 1 RESERVED

说明:Jazelle操作码执行的硬件加速可以在ARMv5TEJ和ARMv6及更高版本上实现(实际上是给JVMs提供加速的)。在这些架构变体中,当硬件加速器存在并启用时,BXJ指令用于从ARM状态切换到Jazelle状态。如果硬件加速器禁用或不存在,则BXJ指令的行为为BX指令,J位保持清零。有关详细信息,请参阅第A2-53页上的“Jazelle扩展”

异常

    ARM架构支持七种类型的异常。表A2-4列出了用于处理每种类型的异常类型和处理器模式。
    当异常发生时,强制执行从与异常类型相对应的固定内存地址。这些固定地址称为异常向量
    Exception type                          Mode         VE(a)       Normal address    High vector address
    Reset                                   Supervisor             0x00000000        0xFFFF0000
    Undefined instructions                  Undefined              0x00000004        0xFFFF0004
    Software interrupt (SWI)                Supervisor             0x00000008        0xFFFF0008
    Prefetch Abort (instruction fetch memory abort) Abort          0x0000000C        0xFFFF000C
    Data Abort (data access memory abort) Abort                    0x00000010        0xFFFF0010
    IRQ (interrupt)                         IRQ           0        0x00000018        0xFFFF0018
                                                          1        IMPLEMENTATION DEFINED
    FIQ (fast interrupt)                    FIQ           0        0x0000001C        0xFFFF001C
                                                          1        IMPLEMENTATION DEFINED

    VE说明: VE = vectored interrupt enable (CP15 control); RAZ when not implemented                                                       
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值