ARM指令系统及上机实验.ppt

上传人:牧羊曲112 文档编号:5415690 上传时间:2023-07-05 格式:PPT 页数:29 大小:832KB
返回 下载 相关 举报
ARM指令系统及上机实验.ppt_第1页
第1页 / 共29页
ARM指令系统及上机实验.ppt_第2页
第2页 / 共29页
ARM指令系统及上机实验.ppt_第3页
第3页 / 共29页
ARM指令系统及上机实验.ppt_第4页
第4页 / 共29页
ARM指令系统及上机实验.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《ARM指令系统及上机实验.ppt》由会员分享,可在线阅读,更多相关《ARM指令系统及上机实验.ppt(29页珍藏版)》请在三一办公上搜索。

1、ARM指令系统及上机实验,议程,实验目的实验原理实验参考程序问题与讨论,实验目的,初步学会使用ADS1.2开发环境进行编译连接和调试 通过实验掌握ARM汇编指令的使用方法,实验原理,编程基础ARM指令简介,编程基础,7种基本的工作模式 2种状态 寄存器组程序状态寄存器 字节顺序,7种基本的工作模式,ARM 有7个基本工作模式:User:非特权模式,大部分任务执行在这种模式FIQ:当一个高优先级(fast)中断产生时将会进入这种模式IRQ:当一个低优先级(normal)中断产生时将会进入这种模式Supervisor:当复位或软中断指令执行时将会进入这种模式Abort:当存取异常时将会进入这种模式

2、Undef:当执行未定义指令时会进入这种模式 System:使用和User模式相同寄存器集的特权模式,2种状态,ARM core 有两种状态ARM状态THUMB状态提供两种指令集,2种状态,ARM和Thumb状态可以相互转换:进入Thumb状态:执行操作数bit0置1的BX指令;如果进入异常处理前是Thumb状态,则从异常处理返回时自动进入Thumb状态。进入ARM状态:执行操作数Bit0清零的BX指令在进入异常处理时自动进入ARM状态,寄存器组,寄存器组,Note:System模式使用user模式寄存器集,寄存器组,ARM 有37个32-Bits长的寄存器.1 个用作PC(program c

3、ounter)1个用作CPSR(current program status register)5个用作SPSR(saved program status registers)30 个通用寄存器当前处理器的模式决定着哪组寄存器可操作.任何模式都可以存取:相应的r0-r12子集相应的 r13(the stack pointer,sp)and r14(the link register,lr)相应的 r15(the program counter,pc)相应的CPSR(current program status register,cpsr)特权模式(除system模式)还可以存取;相应的 sps

4、r(saved program status register),程序状态寄存器,中断禁止位:I=1:禁止 IRQ.F=1:禁止 FIQ.T Bit仅ARM xT架构支持T=0:处理器处于 ARM 状态T=1:处理器处于 Thumb 状态Mode位:处理器模式位,条件位:N=Negative result from ALUZ=Zero result from ALUC=ALU operation Carried outV=ALU operation oVerflowedQ 位:仅ARM 5TE/J架构支持指示饱和状态J 位仅ARM 5TE/J架构支持J=1:处理器处于Jazelle状态,字节顺

5、序,The ARM 可以用 little/big endian 格式存取数据.,ARM指令简介,指令特点指令简介数据处理指令分支跳转指令Load/Store指令乘法指令协处理器指令软中断指令状态寄存器存取指令单个数据交换指令条件执行,指令特点,所有ARM指令均为32-bits长大部分为单周期指令所有指令都可以条件执行采用 Load/Store 架构,数据处理指令,MOVPC,R14MOVSPC,R14ADDEQR2,R4,R5SUBR4,R5,R7,LSR R2,分支跳转指令,格式:跳转指令B PC 32 Mbyte.带返回的跳转指令BL 保存返回地址到 LR返回时从 LR 恢复 PC对于 n

6、on-leaf 函数,LR 必须压栈保存点状态切换的跳转指令BXcondRn举例:BlabelBCClabelBLlabelBXR0,Load/Store指令,一些常见的基本Load/Store指令举例如下:,Load/Store指令,Load/Store指令,批Load/Store指令,这种批Load/Store指令一般用于堆栈操作:,乘法指令,ARM有两种乘法指令:32位结果,MUL、MLA64位结果,SMULL、SMLAL、UMULL、UMLAL,协处理器指令,ARM 协处理器指令有:CDP、MRC/MCR、LDC/STC,软中断指令,ARM 提供软中断,指令为:SWI。举例:SWI0

7、x123456。,状态寄存器存取指令,ARM 状态寄存器存取指令有:MRS、MSR。示例:MRSR0,CPSRMSRCPSR_c,R0,单个数据交换指令,ARM单个数据交换指令有:SWP、SWPB。示例:SWP R3,R4,R8;load R3 from address R8 and store R4 to address R8SWPB R3,R4,R8;load R3 one byte from address R8 and store one byte of R4 to address R8SWP R1,R1,R2;Exchange value in R1 andaddress in R2

8、,条件执行,ARM指令可以通过添加适当的条件码后缀来达到条件执行的目的。这样可以提高代码密度,减少分支跳转指令数目,提高性能。例如:CMPr3,#0CMPr3,#0BEQskipADDNEr0,r1,r2ADDr0,r1,r2skip默认情况下,数据处理指令不影响条件码标志位,但可以选择通过添加“S”来影响标志位。CMP不需要增加“S”就可改变相应的标志位。例如:LoopSUBS r1,r1,#1;R1减1,并设置标志位 BNE loop;如果 Z标志清零则跳转,所有可能的条件码,实验参考程序,AREA ARMSub,CODE,READONLY;Name this block of codeENTRY;Mark first instruction to executeCODE32;Subsequent instructions are ARMheaderB start;so small code header usedstartMOV r0,#10;Set up parametersMOV r1,#3BL doadd;Call subroutineB startdoaddMOV r5,lrADD r0,r0,r1;Subroution codeMOV pc,r5END;Mask end of file,问题与讨论,ARM指令和Thumb指令的区别及各自的优点?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号