第4讲(ARM指令系统).ppt

第4讲(ARM指令系统).ppt

ID:48251854

大小:425.00 KB

页数:24页

时间:2020-01-18

第4讲(ARM指令系统).ppt_第1页
第4讲(ARM指令系统).ppt_第2页
第4讲(ARM指令系统).ppt_第3页
第4讲(ARM指令系统).ppt_第4页
第4讲(ARM指令系统).ppt_第5页
资源描述:

《第4讲(ARM指令系统).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4讲ARM指令系统主讲人刘凯目录一、ARM指令格式二、寻址方式二、ARM指令后缀一、ARM指令格式汇编指令由操作码字段和操作数字段两部分组成。操作码字段指示处理器所要执行的操作;操作数字段指出在指令执行操作的过程中所需要的操作数。指令的一般格式:操作码操作数······操作数操作码一般由指令助记符码、条件码等组成。操作数字段可以有两个或者三个,第一个操作数为目的操作数,后面的操作数为源操作数。基本格式如下:{cond}{S},{,operand2}其中:opcode指令助记符,如LDR.STR等。cond执行条件,如EQ、NE等。S是否影响CPSR寄存器的

2、值,书写时影响CPSRRd目标寄存器。Rn第一个操作数的寄存器。operand2第二个操作数。在这格式里,<>符号内的项是必须的,{}符号内的项是可选的。一、ARM指令格式指令格式举例LDRR0,[R1];读取R1地址上的存储器单元内容,即R0←[R1],无条件执行BEQLable;跳转指令B,执行条件EQ,即相等则程序跳转到Lable处ADDR1,R1,R2;加法指令,R1+R2→R1,即R1+R2的结果送给R1ADDSR1,R1,#1;加法指令,R1+1→R1,并影响状态寄存器(S)第3条指令的R2和第4条指令的#1都是第二操作数。第二操作数可以是:◎8位立即数,或者8位图立即数;◎寄

3、存器值,或者寄存器的值移位得到的新数值。ARM处理器具有6种基本寻址方式:①立即寻址;②寄存器寻址;③寄存器移位寻址;④寄存器间接寻址;⑤基址寻址;⑥多寄存器寻址。二、寻址方式操作数直接存放在指令中,紧跟在操作码之后,它作为指令的一部分存放在代码段里。立即寻址方式经常用于给寄存器赋初值。例:立即寻址举例SUBR0,R0,#1;将R0减1,结果放入R0MOVR0,#0xFF;将立即数0xFF装入R0寄存器2.1立即寻址2.2寄存器寻址寄存器寻址是指:操作数的值在寄存器中,指令中的地址码字段指出的是寄存器的编号,指令执行时直接取出寄存器值来操作。例:寄存器寻址举例MOVR1,R2;将R2的值存

4、入R1中寄存器移位寻址是ARM指令集特有的寻址方式,只能对第2个操作数使用。2.3寄存器移位寻址MOVR0,R1,LSL#3;R1的值左移3位,结果放入R0,即R0=R1×8ANDSR1,R1,R2,LSLR3;R2的值左移R3位,然后和R1相“与”操作,;结果放入R1中LSL逻辑左移(LogicalShiftLeft),寄存器中字的低端空出的位补0;LSR逻辑右移(LogicalShiftRight),寄存器中字的高端空出的位补0;ASR算术右移(ArithmeticShiftRight),移位过程中保持符号位不变;ROR循环右移(ROtateRight),由字的低端移出的位填入字的高端

5、;RRX带扩展的循环右移(RotateRighteXtendedby1place),操作数右移1位,高端空出的位用原C标志值填充,C标志值用移出的最低位填充。移位操作示意图2.4寄存器间接寻址LDRR1,[R2];将R2指向的存储单元的数据读出,即[R2]→R1ADDR1,R2,[R3];将R3指向的存储单元的数据与R2相加,;结果保存在R1中寄存器间接寻址指令中的地址码给出的是一个通用寄存器的编号,寄存器为操作数的地址指针。例:寄存器间接寻址举例1.5基址寻址基址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。①前索引基址寻址方式,基址寄存器的值不改变。LDRR

6、2,[R3,#0x0C];[R3+0x0C]→R2,基址寄存器R3的值保持不变②前索引基址寻址方式,基址寄存器的值发生变化。LDRR2,[R3,#0x0C]!;[R3+0x0C]→R2,基址寄存器R3=R3+0x0C③后索引基址寻址,基址寄存器的值发生变化。LDRR2,[R3],#0x0C;[R3]→R2,基址寄存器R3=R3+0x0C1.6多寄存器寻址LDMIAR1!,[R2-R7,R12];将R1指向的单元中的数据读出到R2-R7、R12中;(每读出一个数据,R1就自动加4,指向下一个数据的物理地址)一次对多个寄存器寻址称之为多寄存器寻址。使用多寄存器寻址指令时,寄存器名的顺序是由小到

7、大排列,连续的寄存器可用“-”链接,否则用“,”分隔书写。三、ARM指令后缀基本格式如下:{cond}{*},{,operand2}其中:cond执行条件后缀。*其他后缀:S后缀、!后缀、字长后缀、索引后缀、T后缀等等编码条件助记符标志位含义0000EQZ=1相等0001NEZ=0不相等0010CSC=1无符号大于或等于0011CCC=0无符号小于0100MIN=1负值0101PLN=0正

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

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

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