欢迎来到天天文库
浏览记录
ID:45166961
大小:965.00 KB
页数:85页
时间:2019-11-10
《第5章ARM指令集特点、寻址方式和指令分类详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《嵌入式系统原理及应用》第5章计算机科学学院于山山主讲第5章ARM指令集和汇编语言程序本章主要介绍以下内容:ARM指令集的基本特点与Thumb指令集的区别与x86处理器的区别ARM指令格式ARM寻址方式ARM指令集分类详解ARM汇编语言的指示符ARM汇编语言语句格式ARM汇编语言程序格式ARM汇编语句格式和程序格式进阶ARM汇编语言程序举例8/3/20212曲阜师范大学计算机科学学院5.1ARM指令集基本特点指令集的异同点ARM、Thumb、x86ARM指令集的语法ARM指令集的编码格式指令条件码表第2操作数8/3
2、/20213曲阜师范大学计算机科学学院ARM指令集和Thumb指令集的共同点ARM指令集和Thumb指令集具有以下共同点:⒈较多的寄存器,可以用于多种用途。⒉对存储器的访问只能通过Load/Store指令。两种指令集的差异特征在下页给出8/3/20214曲阜师范大学计算机科学学院ARM指令集和Thumb指令集的不同点项目ARM指令Thumb指令指令工作标志CPSR的T位=0CPSR的T位=1操作数寻址方式大多数指令为3地址大多数指令为2地址指令长度32位16位内核指令58条30条条件执行大多数指令只有分支指令数据
3、处理指令访问桶形移位器和ALU独立的桶形移位器和ALU指令寄存器使用15个通用寄存器+PC8个通用低寄存器+7个高寄存器+PC程序状态寄存器特权模式下可读可写不能直接访问异常处理能够全盘处理不能处理8/3/20215曲阜师范大学计算机科学学院ARM指令集与x86指令集的主要不同点ARM指令集规整指令格式即:正交指令格式三地址指令由指令的附加位决定运算完毕后是否改变状态标志状态标志位只有4位有两种指令密度无整数除法指令大多数ARM指令都可以条件执行有适合DSP处理的乘加指令Load/Store访存体系结构x86指令
4、集非规整指令格式即:非正交指令格式二地址指令指令隐含决定运算完毕后是否改变状态标志状态标志位有6位单一指令密度有整数除法指令专用条件判断指令进行程序分支没有适合DSP处理的乘加指令运算指令能够访问存储器8/3/20216曲阜师范大学计算机科学学院ARM指令集的编码格式8/3/20217曲阜师范大学计算机科学学院ARM指令集的语法一条典型的ARM指令语法如下所示:{}{S},{,}其中:是指令助记符,决定了指令的操作。例如:ADD表示算术
5、加操作指令。{}是指令执行的条件,可选项。{S}决定指令的操作是否影响CPSR的值,可选项。表示目标寄存器,必有项。表示包含第1个操作数的寄存器,当仅需要一个源操作数时可省略。表示第2个操作数,可选项。第2操作数有两种格式:#immed_8r,Rm{,Shift}8/3/20218曲阜师范大学计算机科学学院ARM数据处理指令中第2操作数的编码格式图解8/3/20219曲阜师范大学计算机科学学院灵活的第2操作数立即数型格式:#<32位立即数>也写成#immed_8r#
6、<32位立即数>是取值为数字常量的表达式,并不是所有的32位立即数都是有效的。有效的立即数很少。它必须由一个8位的立即数循环右移偶数位得到。原因是32位ARM指令中条件码和操作码等占用了一些必要的指令码位,32位立即数无法编码在指令中。举例:ADDr3,r7,#1020;#immed_8r型第2操作数,;1020是0xFF循环右移30位后生成的32位立即数;推导:1020=0x3FC=0x000003FC8/3/202110曲阜师范大学计算机科学学院灵活的第2操作数(续1)数据处理指令中留给Operand2操作数的
7、编码空间只有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/3/202111曲阜师范大学计算机科学学院灵活的第2操作数(续2)寄存
8、器移位型格式:Rm{,}Rm是第2操作数寄存器,可对它进行移位或循环移位。用来指定移位类型(LSL,LSR,ASR,ROR或RRX)和移位位数。其中移位位数有两种表示方式,一种是5位立即数(#shift),另外一种是位移量寄存器Rs的值。参看下面的例子。例子中的R1是Rm寄存器。ADDR5,R3,R1,LSL#2;R5←R3+R1
此文档下载收益归作者所有