欢迎来到天天文库
浏览记录
ID:51116627
大小:2.87 MB
页数:341页
时间:2020-03-18
《ARM体系结构与编程第2版资料ppt.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第2章ARM指令分类及其寻址方式在本章中,将介绍ARM指令分类以及各类指令对应的寻址方式。22.1ARM指令集概要介绍在本节中,将介绍ARM指令相关的一些基本概念,包括指令的分类、指令的一般编码格式以及ARM指令中的条件码。32.1.1ARM指令的分类ARM指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)传输指令、Load/Store指令、协处理器指令和异常中断产生指令6类。42.1.2ARM指令的一般编码格式ARM指令字长为固定的32位。一条典型的ARM指令编码格式如下:312827252421201916151211870其中的符号及参数说明如下。opc
2、ode:指令操作符编码。cond:指令执行的条件编码。S:决定指令的操作是否影响CPSR的值。Rd:目标寄存器编码。Rn:包含第1个操作数的寄存器编码。shifter_operand:表示第2个操作数。5cond001opcodeSRnRdshifter_operand2.1.3ARM指令的条件码域条件码共有16个,各条件码的含义和助记符如表2.1所示。可条件执行的指令可以在其助记符的扩展域加上条件码助记符,从而在特定的条件下执行。参见教材P2362.2ARM指令的寻址方式ARM指令的寻址方式有以下几种,分别进行讨论:数据处理指令的操作数的寻址方式。字及无符号字节的Loa
3、d/Store指令的寻址方式。杂类Load/Store指令的寻址方式。批量Load/Store指令的寻址方式。协处理器Load/Store指令的寻址方式。72.2.1数据处理指令的操作数的寻址方式通常数据处理指令的格式如下所示:{}{S},,其中的符号及参数说明如下。:是指令助记符,如ADD表示算术加操作指令。{}:表示指令执行的条件。{S}:决定指令的操作是否影响CPSR的值。:表示目标寄存器。:表示包含第1个操作数的寄存器。4、rand>:表示第2个操作数。82.2.1数据处理指令的操作数的寻址方式通常有下面3种格式。(1)立即数方式。(2)寄存器方式。(3)寄存器移位方式。数据处理指令操作数的具体寻址方式有下面11种。#,LSL#,LSL,LSR#,LSR,ASR#,ASR,ROR#,ROR,RRX92.2.2字及无符号字节的Load/Sto5、re指令的寻址方式各种类型的Load/Store指令的寻址方式由两部分组成。一部分为一个的基址寄存器;另一部分为一个地址偏移量。基址寄存器可以为任一个通用寄存器;地址偏移量可以有以下3种格式:立即数。寄存器。寄存器及一个移位常数。同样,寻址方式的地址计算方法有如下3种:偏移量方法。事先更新方法。事后更新方法。102.2.2字及无符号字节的Load/Store指令的寻址方式LDR指令的语法格式如下所示:LDR{}{B}{T},其中,表示第2个操作数的内存地址,共有如下9种格式:[,#+/–<6、offset_12>][,+/–][,+/–,#][,#+/–]![,+/–]![,+/–,#]![],#+/–[],+/–[],+/–,#112.2.3杂类Load/Store指令的寻址方式这里所说的杂类Load/Store指令,包括操作数为半字(无符号数或带符号数)数据的Load/Store指令;操作数为带符7、号的字节数据的Load指令;双字的Load/Store指令。这类指令的语法格式为:LDR8、STR{}H9、SH10、SB11、D,其中,是指令中内存单元的寻址方式,具体有以下6种格式:[,#+/–][,+/–][,#+/–]![,+/–]![],#+/–[],+/–122.2.4批量Load/Store指令的寻址方式一条
4、rand>:表示第2个操作数。82.2.1数据处理指令的操作数的寻址方式通常有下面3种格式。(1)立即数方式。(2)寄存器方式。(3)寄存器移位方式。数据处理指令操作数的具体寻址方式有下面11种。#,LSL#,LSL,LSR#,LSR,ASR#,ASR,ROR#,ROR,RRX92.2.2字及无符号字节的Load/Sto
5、re指令的寻址方式各种类型的Load/Store指令的寻址方式由两部分组成。一部分为一个的基址寄存器;另一部分为一个地址偏移量。基址寄存器可以为任一个通用寄存器;地址偏移量可以有以下3种格式:立即数。寄存器。寄存器及一个移位常数。同样,寻址方式的地址计算方法有如下3种:偏移量方法。事先更新方法。事后更新方法。102.2.2字及无符号字节的Load/Store指令的寻址方式LDR指令的语法格式如下所示:LDR{}{B}{T},其中,表示第2个操作数的内存地址,共有如下9种格式:[,#+/–<
6、offset_12>][,+/–][,+/–,#][,#+/–]![,+/–]![,+/–,#]![],#+/–[],+/–[],+/–,#112.2.3杂类Load/Store指令的寻址方式这里所说的杂类Load/Store指令,包括操作数为半字(无符号数或带符号数)数据的Load/Store指令;操作数为带符
7、号的字节数据的Load指令;双字的Load/Store指令。这类指令的语法格式为:LDR
8、STR{}H
9、SH
10、SB
11、D,其中,是指令中内存单元的寻址方式,具体有以下6种格式:[,#+/–][,+/–][,#+/–]![,+/–]![],#+/–[],+/–122.2.4批量Load/Store指令的寻址方式一条
此文档下载收益归作者所有