ARM指令集特点、寻址方式和指令分类详解习题

ARM指令集特点、寻址方式和指令分类详解习题

ID:37419033

大小:999.50 KB

页数:73页

时间:2019-05-12

ARM指令集特点、寻址方式和指令分类详解习题_第1页
ARM指令集特点、寻址方式和指令分类详解习题_第2页
ARM指令集特点、寻址方式和指令分类详解习题_第3页
ARM指令集特点、寻址方式和指令分类详解习题_第4页
ARM指令集特点、寻址方式和指令分类详解习题_第5页
资源描述:

《ARM指令集特点、寻址方式和指令分类详解习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章ARM指令集主要介绍以下内容:ARM指令集的基本特点与Thumb指令集的区别与x86处理器的区别ARM指令格式ARM寻址方式ARM指令集分类详解14.6ARM处理器的寻址方式和指令系统ARM指令集和Thumb指令集具有以下共同点:⒈较多的寄存器,可以用于多种用途。⒉对存储器的访问只能通过Load/Store指令。两种指令集的差异特征在下页给出4.6.1ARM处理器指令系统主要特征2ARM指令集和Thumb指令集的不同点项目ARM指令Thumb指令指令工作标志CPSR的T位=0CPSR的T位=1操作数寻址方式大多数指令为3地址大多数指令为2地址指令长度32位16位内核指令58条30条

2、条件执行大多数指令只有分支指令数据处理指令访问桶形移位器和ALU独立的桶形移位器和ALU指令寄存器使用15个通用寄存器+PC8个通用低寄存器+7个高寄存器+PC程序状态寄存器特权模式下可读可写不能直接访问异常处理能够全盘处理不能处理3ARM指令集与x86指令集的主要不同点ARM指令集规整指令格式即:正交指令格式三地址指令由指令的附加位决定运算完毕后是否改变状态标志状态标志位只有4位有两种指令密度无整数除法指令大多数ARM指令都可以条件执行有适合DSP处理的乘加指令Load/Store访存体系结构x86指令集非规整指令格式即:非正交指令格式二地址指令指令隐含决定运算完毕后是否改变状态标志状

3、态标志位有6位单一指令密度有整数除法指令专用条件判断指令进行程序分支没有适合DSP处理的乘加指令运算指令能够访问存储器44.6.2ARM指令集的编码格式和语法一条典型的ARM指令语法如下所示:{}{S},{,}其中:是指令助记符,决定了指令的操作。例如:ADD表示算术加操作指令。{}是指令执行的条件,可选项。{S}决定指令的操作是否影响CPSR的值,可选项。表示目标寄存器,必有项。表示包含第1个操作数的寄存器,当仅需要一个源操作数时可省略。表示第2个操作数,可选

4、项。第2操作数有两种格式:#immed_8r,Rm{,Shift}5ARM数据处理指令中第2操作数编码格式图解6灵活的第2操作数立即数型格式:#<32位立即数>也写成#immed_8r#<32位立即数>是取值为数字常量的表达式,并不是所有的32位立即数都是有效的。有效的立即数很少。它必须由一个8位的立即数循环右移偶数位得到。原因是32位ARM指令中条件码和操作码等占用了一些必要的指令码位,32位立即数无法编码在指令中。举例:ADDr3,r7,#1020;#immed_8r型第2操作数,;1020是0xFF循环右移30位后生成的32位立即数;推导:1020=0x3FC=0x000003FC

5、7灵活的第2操作数(续1)数据处理指令中留给Operand2操作数的编码空间只有12位,需要利用这12位产生32位的立即数。其方法是:把指令最低8位(bit[7:0])立即数循环右移偶数次,循环右移次数由2*bit[11:8](bit[11:8]是Operand2的高4位)指定。例如:MOVR4,#0x8000000A;其中的立即数#0x8000000A是由8位的0xA8循环右移0x4位得到。又例如:MOVR4,#0xA0000002;其中的立即数#0xA0000002是由8位的0xA8循环右移0x6位得到。8灵活的第2操作数(续2)寄存器移位型格式:Rm{,}Rm是第2操

6、作数寄存器,可对它进行移位或循环移位。用来指定移位类型(LSL,LSR,ASR,ROR或RRX)和移位位数。其中移位位数有两种表示方式,一种是5位立即数(#shift),另外一种是位移量寄存器Rs的值。参看下面的例子。例子中的R1是Rm寄存器。ADDR5,R3,R1,LSL#2;R5←R3+R1*4ADDR5,R3,R1,LSLR4;R5←R3+R1*2R4;R4是Rs寄存器,Rs用于计算右移次数9寄存器移位方式生成的第2操作数Rm{,shift}将寄存器的移位结果作为操作数,但Rm值保存不变,移位方法如下:ASR#n;算术右移n位(1≤n≤32)。LSL#n;逻辑左移n位

7、(1≤n≤31)。LSR#n;逻辑右移n位(1≤n≤32)。ROR#n;循环右移n位(1≤n≤31)。RRX;带扩展的循环右移1位。10寄存器位移方式生成第2操作数 应用举例ADDR1,R1,R1,LSL#3;R1=R1*9,因为R1←R1+R1*8。SUBR1,R1,R2,LSR#2;R1=R1-R2÷4,;因为R2右移2位相当于R2除以4。EORR11,R12,R3,ASR#5;R11=R12⊕(R3÷32);第2操作数是R3的

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

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

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