第5章ARM指令集特点、寻址方式和指令分类详解

第5章ARM指令集特点、寻址方式和指令分类详解

ID:44959680

大小:646.50 KB

页数:85页

时间:2019-11-06

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

《第5章ARM指令集特点、寻址方式和指令分类详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《嵌入式系统原理及应用》第5章计算机科学学院于山山主讲10/8/20211曲阜师范大学计算机科学学院第5章ARM指令集和汇编语言程序本章主要介绍以下内容:ARM指令集的基本特点与Thumb指令集的区别与x86处理器的区别ARM指令格式ARM寻址方式ARM指令集分类详解ARM汇编语言的指示符ARM汇编语言语句格式ARM汇编语言程序格式ARM汇编语句格式和程序格式进阶ARM汇编语言程序举例10/8/20212曲阜师范大学计算机科学学院5.1ARM指令集基本特点指令集的异同点ARM、Thumb、x86ARM指令集的语法ARM指令集的编码格式指令条件码表第2操

2、作数10/8/20213曲阜师范大学计算机科学学院ARM指令集和Thumb指令集 的共同点ARM指令集和Thumb指令集具有以下共同点:⒈较多的寄存器,可以用于多种用途。⒉对存储器的访问只能通过Load/Store指令。两种指令集的差异特征在下页给出10/8/20214曲阜师范大学计算机科学学院ARM指令集和Thumb指令集 的不同点项目ARM指令Thumb指令指令工作标志CPSR的T位=0CPSR的T位=1操作数寻址方式大多数指令为3地址大多数指令为2地址指令长度32位16位内核指令58条30条条件执行大多数指令只有分支指令数据处理指令访问桶形移位器

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

4、算完毕后是否改变状态标志状态标志位有6位单一指令密度有整数除法指令专用条件判断指令进行程序分支没有适合DSP处理的乘加指令运算指令能够访问存储器10/8/20216曲阜师范大学计算机科学学院ARM指令集的编码格式10/8/20217曲阜师范大学计算机科学学院ARM指令集的语法一条典型的ARM指令语法如下所示:{}{S},{,}其中:是指令助记符,决定了指令的操作。例如:ADD表示算术加操作指令。{}是指令执行的条件,可选项。{S}决定指令的操作是否影响CPSR的

5、值,可选项。表示目标寄存器,必有项。表示包含第1个操作数的寄存器,当仅需要一个源操作数时可省略。表示第2个操作数,可选项。第2操作数有两种格式:#immed_8r,Rm{,Shift}10/8/20218曲阜师范大学计算机科学学院ARM数据处理指令中 第2操作数的编码格式图解10/8/20219曲阜师范大学计算机科学学院灵活的第2操作数立即数型格式:#<32位立即数>也写成#immed_8r#<32位立即数>是取值为数字常量的表达式,并不是所有的32位立即数都是有效的。有效的立即数很少。它必须由一个8位的立即数循环右

6、移偶数位得到。原因是32位ARM指令中条件码和操作码等占用了一些必要的指令码位,32位立即数无法编码在指令中。举例:ADDr3,r7,#1020;#immed_8r型第2操作数,;1020是0xFF循环右移30位后生成的32位立即数;推导:1020=0x3FC=0x000003FC10/8/202110曲阜师范大学计算机科学学院灵活的第2操作数(续1)数据处理指令中留给Operand2操作数的编码空间只有12位,需要利用这12位产生32位的立即数。其方法是:把指令最低8位(bit[7:0])立即数循环右移偶数次,循环右移次数由2*bit[11:8](b

7、it[11:8]是Operand2的高4位)指定。例如:MOVR4,#0x8000000A;其中的立即数#0x8000000A是由8位的0xA8循环右移0x4位得到。又例如:MOVR4,#0xA0000002;其中的立即数#0xA0000002是由8位的0xA8循环右移0x6位得到。10/8/202111曲阜师范大学计算机科学学院灵活的第2操作数(续2)寄存器移位型格式:Rm{,}Rm是第2操作数寄存器,可对它进行移位或循环移位。用来指定移位类型(LSL,LSR,ASR,ROR或RRX)和移位位数。其中移位位数有两种表示方式

8、,一种是5位立即数(#shift),另外一种是位移量寄存器Rs的值。参看下面的例子。例子中的R

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

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

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