第四讲 ARM指令系统和汇编编程

第四讲 ARM指令系统和汇编编程

ID:44988414

大小:1.26 MB

页数:52页

时间:2019-11-06

第四讲 ARM指令系统和汇编编程_第1页
第四讲 ARM指令系统和汇编编程_第2页
第四讲 ARM指令系统和汇编编程_第3页
第四讲 ARM指令系统和汇编编程_第4页
第四讲 ARM指令系统和汇编编程_第5页
资源描述:

《第四讲 ARM指令系统和汇编编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、复习第三讲:ARM编程模型和异常处理ARM指令系统ARM汇编语言编程和优化第四讲ARM指令系统和汇编编程ARM编程模型ARM存储器格式:零地址开始字节线型组合ARM的七种工作模式用户模式:USER系统(高级用户)模式:SYSTEM异常模式:Supervisor,Undef,About,IRQ,FIQ不同的模式对应不同的寄存器资源和权限ARM的寄存器组成影子寄存器的概念R13,R14,R15CPSR/SPSRRegisterOrganizationSummaryUser mode r0-r7, r15, andcp

2、srr8r9r10r11r12r13(sp)r14(lr)spsrFIQr8r9r10r11r12r13(sp)r14(lr)r15(pc)cpsrr0r1r2r3r4r5r6r7Userr13(sp)r14(lr)spsrIRQUser mode r0-r12, r15, andcpsrr13(sp)r14(lr)spsrUndefUser mode r0-r12, r15, andcpsrr13(sp)r14(lr)spsrSVCUser mode r0-r12, r15, andcpsrr13(sp)r14

3、(lr)spsrAbortUser mode r0-r12, r15, andcpsrThumbstateLowregistersThumbstateHighregistersNote:SystemmodeusestheUsermoderegistersetARM异常总结异常改变指令正常执行的顺序ARM有7种异常复位数据中止(ABOUT)快速中断请求普通中断请求预取指中止(ABOUT)软件中断(SWI)未定义指令中止(UNDEF)一旦异常发生,处理器进入特定模式,跳转到向量表中的异常处理程序入口每种异常都有一个优

4、先级中断是一种特殊的异常VectorTableVectortablemaybeplacedat 0xFFFF0000onARM720T andARM9/10familydevicesFIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedInstructionReset0x1C0x180x140x100x0C0x080x040x00异常处理Whenanexceptionoccurs,theARM:CopiesCPSRintoSPSR_

5、e>SetsappropriateCPSRbitsIfcorecurrentlyinThumbstatethenARMstateisentered.ModefieldbitsInterruptdisablebits(ifappropriate)StoresthereturnaddressinLR_SetsPCtovectoraddressToreturn,exceptionhandlerneedsto:RestoreCPSRfromSPSR_RestorePCfromLR_Th

6、iscanonlybedoneinARMstate.异常返回时候PC指针的调整SWI和未定义指令异常是由当前执行的指令产生的,当SWI和未定义指令异常产生时,程序计数器PC的值还未更新,它指向当前指令后面第2条指令:MOVPC,LR当IRQ和FIQ异常产生时,程序计数器PC的值已经更新,它指向当前指令后面第3条指令。SUBSPC,LR,#4当发生指令预取中止异常时,程序要返回到该有问题的指令处,重新读取并执行该指令。因此指令预取中止异常处理程序返回到产生该指令预取中止异常的指令处SUBSPC,LR,#4数据访问中

7、止异常是由数据访问指令产生的,当数据访问中止异常产生时,程序计数器PC的值已经更新,它指向当前指令后面的第3条指令。SUBSPC,LR,#8复习第三讲:ARM编程模型和异常处理ARM指令系统ARM汇编语言编程和优化第四讲ARM指令系统和汇编编程ARM指令集的特点所有的ARM指令都是32位宽,在存储器中以4字节的边界对齐3地址的数据处理指令(即两个源操作数和结果寄存器都独立设定)LOAD/STORE架构,包含非常强大的多寄存器Load和Store指令能够在单时钟周期的单条指令来完曾一项普通移位操作和一项普通的ALU

8、操作可以通过协处理器来扩展新的寄存器和数据类型指令可条件执行ARM指令的分类数据处理指令分支指令数据传送指令(访问存储器)软件中断SWI指令程序状态寄存器指令条件执行NZCVConditioncodeInstructionCPSR缺省情况下,数据处理指令不影响条件码标志,但是条件码标志可由“S”来设置,CMP不需要加“S”SUBSr1,r1,#1r1减1并设置标志BNEl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。