计算机组成原理指令系统方案_第1页
计算机组成原理指令系统方案_第2页
计算机组成原理指令系统方案_第3页
计算机组成原理指令系统方案_第4页
计算机组成原理指令系统方案_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机组成原理武汉科技大学计算机科学与技术学院计算机组成原理第四章指令系统本章内容4.1

指令系统的发展和性能要求4.2

指令格式4.3

操作数类型4.4

指令和数据的寻址方式4.5

典型指令4.6ARM汇编语言第四章指令系统本章内容4.1.1指令系统的发展程序:解决某一实际问题的指令序列指令:要计算机执行某种操作的命令

4.1

指令系统的发展与性能要求3.指令系统:一台计算机中所有机器指令的集合(1)微指令:微程序级的命令,属于硬件(2)宏指令:由若干机器指令和伪指令构成的软件指令(3)机器指令(指令):介于微指令与宏指令之间,每条指令可完成一个独立的算术运算或逻辑运算从计算机层次结构的观点看,指令可分三类:目录4.1.1指令系统的发展4.1

指令系统的发展与性能要4.指令系统的发展50年代——只有定点加减、逻辑运算、数据传送、转移等十几至几十条指令

60年代后期——增加了乘除运算、浮点运算、十进制运算、字符串处理等,指令多达一二百条,寻址方式也趋多样化

60年代后期——开始出现系列计算机

70年代末期——CISC(ComplexInstructionSetComputer)RISC(ReducedInstructionSetComputer)系列计算机——基本指令系统、体系结构相同的一系列计算机系列计算机必要条件——同一系列的各机种有共同的指令集;且实现“向上兼容”4.指令系统的发展CISC和RISCCISC——复杂指令系统计算机,多达几百条研制周期长,不易调试维护,且造成硬件资源浪费RISC——精简指令系统计算机

从CISC转变到RISC的原因指令系统百分比的20:80规律降低控制器设计难度CISC和RISCCISC——复杂指令系统计算机,多达几百条

一个完善的指令系统应满足的条件:完备性

指令丰富、功能齐全、使用方便——用汇编语言编各种程序时,直接提供的指令足够用有效性

程序占存储空间小、执行速度快规整性

对称性、匀齐性、指令格式和数据格式的一致性

对称性:所有的寄存器和存储器单元都可同等对待;所有的指令都可使用各种寻址方式

匀齐性:一种操作指令可支持各种数据类型

指令格式和数据格式的一致性:指令长度和数据长度有一定关系,方便处理和存取兼容性

“向上兼容”

4.1.2指令系统的性能要求一个完善的指令系统应满足的条件:4.1.2指令系统的低级语言分机器语言(二进制)和汇编语言(符号)高级语言与低级语言的性能比较:

高级语言的语句和用法与具体机器的指令系统无关

低级语言和具体机器的指令系统密切相关

机器语言是机器能直接识别和执行的惟一语言

汇编语言与硬件关系密切,编写的程序紧凑、占内存小、速度快,适合编写经常与硬件打交道的系统软件

高级语言不涉及机器的硬件结构,通用性强、编写程序容易,适合编写与硬件没有直接关系的应用软件4.1.3低级语言与硬件结构的关系低级语言分机器语言(二进制)和汇编语言(符号)4.1.3低高级语言与低级语言的比较比较内容高级语言低级语言1对程序员的训练要求:(1)通用算法(2)语言规则(3)硬件知识有较少不需要有较多需要2对机器独立的程度独立不独立3编制程序的难易程度易难4编制程序所需时间短较长5程序执行时间较长短6编译过程中对计算机资源(时间和存储容量)的要求多少高级语言与低级语言的比较比较内容高级语言低级语言1对程序员的4.2

指令格式

指令字(简称指令)——表示一条指令的机器字

指令格式——指令字用二进制代码表示的结构形式——表征指令的操作特性与功能位数取决于指令系统的规模,分固定位数和可变位数4.2.1操作码4.2.2地址码——参与操作的操作数的地址或操作数本身三地址指令格式、二地址格式、一地址格式和零地址格式操作码字段OP地址码字段A目录4.2

指令格式指令字(简称指令)——表示一条指令(1)零地址指令

两种情况: 一是该指令不需要操作数,如NOP指令 二是操作数隐含,如DAA操作数隐含于累加器AC中(2)一地址指令(单操作数指令)

也有两种情况: 一是指令本身只需要一个操作数,如NOT指令 二是被操作数和结果隐含于累加器AC中

AC

(AC)

OP

(A)

(A)表示地址为A的内存或通用寄存器中的数关于地址码个数的有关说明操作码

A1

操作码

(1)零地址指令关于地址码个数的有关说明操作码A1操(3)二地址指令(双操作数指令)

A1←

(A1)

OP

(A2)

按操作数的物理位置不同又分为:SS型、RR型、RS型指令(4)三地址指令

A3←

(A1)

OP

(A2)

A1——被操作数地址,也称源操作数地址

A2——操作数地址,也称终点操作数地址

A3——存放结果的地址A1,A2,A3可为内存单元或通用寄存器的地址操作码

A1

A2A3操作码

A1

A2关于地址码个数的有关说明(续)(3)二地址指令(双操作数指令)操作码A1A2A3操作机器字长:计算机能直接处理的二进制数的位数指令字长度:指令字包含二进制代码的位数,等长、变长两种等长指令字结构:结构简单,且指令字长度不变变长指令字结构:结构灵活,但控制较复杂4.2.3指令字长度设L为指令字长度,N为机器字长度

L=N——单字长指令

L=0.5N——半字长指令

L=2N——双字长指令多字长指令的优点、缺点机器字长:计算机能直接处理的二进制数的位数4.2.3指令字典型的指令助记符典型指令

指令助记符

二进制操作码

加法

ADD001

减法

SUB010

传送

MOV011

跳转

JMP100

转子

JSR101

存数

STO110

取数

LAD1114.2.4指令助记符不同的计算机中,指令助记符的规定不同指令助记符借助汇编程序可自动转换成相应的二进制码典型的指令助记符典型指令指令助记符二进制操作码加法1.八位微型计算机(字长8位)的指令格式

——可变字长形式:单字长、双字长、三字长指令操作码

操作码

A1A2操作码

A1单字长指令

双字长指令

三字长指令

内存按字节编址,每执行一条指令后,指令地址的修正——加1、加2、加34.2.5指令格式举例1.八位微型计算机(字长8位)的指令格式操作码操作码字长32位,字节寻址,通用寄存器32个R型指令——所有算术运算,数据必须放在通用寄存器中2.

MIPSR4000指令格式——RISC

6位5位5位5位5位6位oprsrtrdshamtfunctR型I型(立即数)指令——访问存储器(存数或取数)6位5位5位16位oprsrt常数或地址(address)I型MIPS指令的字段值指令格式oprsrtrdshamtfunct常数或地址add(加)R0regregreg032

sub(减)R0regregreg034

立即数加I8regreg

常数lw(取字)I35regreg

addresssw(存字)I43regreg

address返回到举例字长32位,字节寻址,通用寄存器32个2.MIPSR40ARM指令集的一种指令格式3.

RAM的指令格式——32位嵌入式处理器condFIopcodeSRnRdoperand24位2位1位4位1位4位4位12位指令字长度可变:1

12字节,典型的CICS结构1或2

0或1

0或1

0,1,2,40,1,2,4操作码ModReg或操作码R/M比例S变址I基址B位移量立即数4.

Pentium指令格式由操作码、Mod-R/M、SIB、位移量、立即数字段组成,除操作码字段外,其他四个字段均可选2位3位3位2位3位3位ARM指令集的一种指令格式3.RAM的指令格式——32位嵌[例1]已知指令格式,OP为操作码,试分析其特点[解]:(1)单字长二地址指令(2)操作码字段OP为7位,可指定128条指令(3)源寄存器和目标寄存器都是通用寄存器(可分别指定16个)——RR型指令(4)这种指令结构常用于算术逻辑运算类指令指令格式举例115987430OP——源寄存器目标寄存器[例1]已知指令格式,OP为操作码,试分析其特点[解]:指[例2]

试分析下面指令格式的特点

[解]:

(1)双字长二地址指令,用于访问存储器

(2)操作码字段OP为6位,可以指定64种操作

(3)一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定)——RS型指令指令格式举例21510987430OP--源寄存器变址寄存器位移量(16位)[例2]试分析下面指令格式的特点

[解]:指令格式举例21[例3]

MIPSR4000汇编语言中,寄存器$s0

$s7对应寄存器号为16

23(十进制),寄存器$t0

$t7对应寄存器号为8

15。下表列出了2条R型指令(add、sub),2条I型指令(IW、SW)的汇编语言表示。请将4条汇编语言手工翻译成对应的机器语言(十进制)表示指令格式举例3MIPS汇编语言类别指令示例语义说明算术运算加add$s1,$s2,$s3$s1=$s2+$s33个操作数,都在寄存器中减sub$s1,$s2,$s3$s1=$s2-$s33个操作数,都在寄存器中数据传送取字lw$s1,100($s2)$s1=Memory[$s2+100]数据从存储器到寄存器存字sw$s1,100($s2)Memory[$s2+100]=$s1数据从寄存器到存储器[例3]MIPSR4000汇编语言中,寄存器$s0$s$s0

$s7对应寄存器号为16

23

[解]:MIPS机器语言表示如表所示指令格式举例34条指令的机器语言名称格式示例说明addR0181917032add$s1,$s2,$s3subR0181917034sub$s1,$s2,$s3lwI351817100lw$s1,100($s2)swI431817100sw$s1,100($s2)字段大小6位5位5位5位5位6位所有MIPS指令都是32位R型Roprsrtrdshamtfunct算术指令格式I型Ioprsrtaddress数据传送指令格式MIPS指令字段值$s0$s7对应寄存器号为1623

[解]:MIPS4.3

操作数类型4.3.1一般的数据类型地址数据:可看成无符号数数值数据:常用的三种类型:定点数、浮点数、压缩BCD字符数据:文本数据或字符串,目前广泛使用ASCII码逻辑数据:将一个数据看成由若干位组成——可对具体的位进行布尔逻辑运算4.3.2Pentium数据类型能处理——字节(8位)、字(16位)、双字(32位)、四字(64位)字、双字、四字的起始地址无要求当通过32位数据总线存取数据时,双字的起始地址能被4整除Pentium的数据类型目录4.3操作数类型4.3.1一般的数据类型4.3.2PePentium数据类型数据类型说明常规字节、字、双字、四字,可位于任意存储位置整数字节、字、双字、四字中的有符号二进制值,2的补码表示序数字节、字、双字、四字中的无符号整数未压缩BCD范围0~9的BCD数字表示,每字节一个数字压缩BCD每字节表示2个BCD数字,值0~99近指针表示段内偏移的32位有效地址,用于不分段存储器中的所有指针和分段存储器中的段内访问位串一个连续的位序列,每位位置认为是一个独立的单位,能以任何字节的任何位置开始一个位串,最长可达232-1位字符串一个连续的字节、字或双字的序列,最长可达232-1B浮点数单精度(32位)、双精度(64位)、扩展双精度(80位)返回Pentium数据类型数据类型说明常规字节、字、双字、四字,4.3.3PowerPC数据类型PowerPC——RISC可处理——字节(8位)、半字(16位)、字(32位)、双字(64位)能识别的数据类型:(1)无符号字节:用于逻辑和整数算术运算,由存储器读出装入通用寄存器时左端以0填充(2)无符号半字:与“无符号字节”类似,长度16位(3)有符号半字:用于16位算术运算,装入寄存器时要符号扩展(4)无符号字:用于32位逻辑运算,或作地址指针(5)有符号字:用于32位算术运算(6)无符号双字:用作64位地址指针(7)字节串:长度0

128个字节(8)浮点数:支持IEEE754定义的单精度、双精度浮点类型4.3.3PowerPC数据类型PowerPC——RI4.4

指令和数据的寻址方式在存储器中,操作数或指令字写入或读出的3种方式——地址指定方式、相联存储方式和堆栈存取方式;几乎所有的计算机,内存中都采用地址指定方式

寻址方式——采用地址指定方式时,形成操作数或指令地址的方式

指令寻址方式比较简单;数据寻址方式比较复杂4.4.1指令的寻址方式

一种是顺序寻址方式 另一种是跳跃寻址方式目录4.4

指令和数据的寻址方式在存储器中,操作数或指令字跳跃寻址——下条指令的地址码由本条指令给出PC100Jmp103主存100101102103100PC+1内存100101设置程序计数器(指令指针寄存器)PC对指令的顺序号计数,该顺序号就是指令在内存中的地址2.跳跃寻址方式目标地址->PC1.顺序寻址方式(PC)+1->PC103跳跃寻址——下条指令的地址码由本条指令给出PC100Jmp——形成操作数的有效地址的方法

例如,一种单地址指令的结构如下所示

操作码OP

变址X

间址I

形式地址A4.4.2操作数基本寻址方式指令中的地址码由形式地址和寻址方式特征位等组合形成寻址过程就是把操作数的形式地址,变换为有效地址具体的寻址方式有:

隐含寻址 立即寻址 直接寻址 间接寻址 寄存器寻址 寄存器间接寻址 偏移寻址(基值、变址、相对) 堆栈寻址 段寻址——形成操作数的有效地址的方法操作码OP变址X间址I——指令中不显式给出而是隐含着操作数的地址例如,单地址的指令格式隐含着累加器AC为第二操作数地址2.立即寻址——指令的地址字段给出的是操作数本身,而不是操作数地址不需要访问内存取数,故指令执行时间很短3.直接寻址1.隐含寻址

——地址字段中直接指出操作数在内存的地址A

形式地址A就是操作数的有效地址E(E=A),又称直接地址如果用D表示操作数,那么D=(E)=(A)操作数=2000HOPXA=1350H

2000H1350H——指令中不显式给出而是隐含着操作数的地址1.隐含寻址————形式地址A是操作数地址的指示器,A单元的内容才是操作数的有效地址

操作码

I

A寻址特征位 I=0,表示直接寻址,有效地址E=A I=1,表示间接寻址,有效地址E=(A)4.间接寻址——目前已很少使用把直接寻址和间接寻址结合起来指令的形式:操作数=1234HOPX2A=1000H

操作数地址=2000HD=1234H1000H2000H——形式地址A是操作数地址的指示器,A单元的内容才是操作数的——指令中给出通用寄存器的编号,操作数在通用寄存器中

6.寄存器间接寻址方式——指令中给出寄存器的编号,但该寄存器的内容是操作数的地址,操作数在内存中如:8086CPU的指令系统中MOV指令:

MOV AX,BX ;源操作数是寄存器寻址

MOV AX,[BX] ;源操作数是寄存器间接寻址5.寄存器寻址方式——指令中给出通用寄存器的编号,操作数在通用寄存器中5.寄存7.偏移寻址(1)相对寻址方式——隐含的专用寄存器为PC;EA=(PC)+A形式地址A称为偏移量,有符号数,相对当前指令地址浮动(2)基址寻址方式——EA=(BR)+A;A为偏移量(通常是无符号数);寄存器的引用可以是显式或隐式的优点——BR位数较多时,提供较大寻址空间(如段寻址)(3)变址寻址方式——EA=(IR)+A;(IR)通常是一个正偏移量——为重复操作提供高效机制——是直接寻址和寄存器间接寻址方式的结合有效地址EA=A+(R)7.偏移寻址(1)相对寻址方式——是直接寻址和寄存器间接寻

BR操作数OPX3A+

DE=A+(BR)偏移寻址BR操作数OPX3以PC微型为例,内存单元的分段20位物理地址的构成——段寄存器、位移量16位逻辑地址16位段寄存器000020位物理地址+8.段寻址方式(其本质是基址寻址)以PC微型为例,内存单元的分段16位逻辑地址16位段寄存器0数据的存取在栈顶——栈顶指示器PUSH——数据入栈,栈顶指示器减POP——数据出栈,栈顶指示器加9.堆栈寻址方式(先进后出)数据的存取在栈顶——栈顶指示器9.堆栈寻址方式(先进后出)基本寻址方式示意图逻辑地址段寄存器+存储器物理地址0000015019015基本寻址方式示意图逻辑地址段寄存器+存储器物理地址00000基本寻址方式小结方式算法主要优点主要缺点隐含寻址操作数在专用寄存器无存储器访问数据范围有限立即寻址操作数=A无存储器访问操作数幅值有限直接寻址EA=A简单地址范围有限间接寻址EA=(A)大的地址范围多重存储器访问寄存器寻址EA=R无存储器访问地址范围有限寄存器间接寻址EA=(R)大的地址范围额外存储器访问偏移寻址EA=A+(R)灵活复杂段寻址EA=A+(R)灵活复杂堆栈寻址EA=栈顶无存储器访问应用有限基本寻址方式小结方式算法主要优点主要缺点隐含寻址操作数在专用立即寻址操作数寄存器间接寻址存储器间接寻址偏移寻址在寄存器中在主存中在I/O端口中直接寻址(8位)间接寻址(16位DX)在指令中寄存器寻址操作数的寻址方式直接寻址立即寻址操作数寄存器间接寻址存储器间接寻址偏移寻址在寄存器中外部地址总线36位,但也支持32位物理地址空间

实地址模式下,逻辑地址形式为段寻址方式:20位物理地址PA=段寄存器内容左移4位+16位段内偏移

保护模式下,32位线性地址LA=32位段基址+段内偏移,再由存储管理部件透明地将其转换成32位的物理地址1.Pentium的寻址方式4.4.3寻址方式举例保护模式下Pentium寻址方式的计算外部地址总线36位,但也支持32位物理地址空间1.PSS访问权限段长基地址段寄存器选择符SS选择符选择符选择符选择符选择符GSFSESDSCS用户可见GS访问权限段长基地址FS访问权限段长基地址ES访问权限段长基地址DS访问权限段长基地址CS访问权限段长基地址描述符寄存器基址寄存器变址寄存器比例因子S(1,2,4,8)偏移量(在指令中)线性地址LA有效地址EA

++操作数存储器段基址段长返回SS段寄存器选择符SS选择符选择符选择符选择符选择符GSFSPentium的寻址方式(EA的获取方式)序号寻址方式名称有效地址EA算法说明(1)立即寻址操作数=A操作数A在指令中(2)寄存器寻址EA=R指令给出寄存器号,操作数在寄存器中(3)偏移量寻址EA=A偏移量A(8位、16位、32位)在指令中(4)基址寻址EA=(B)B为基址寄存器(5)基址+偏移量EA=(B)+A(6)比例变址+偏移量EA=(I)×S+AI为变址寄存器,S为比例因子(1、2、4、8)(7)基址+变址+偏移量EA=(B)+(I)+A(8)基址+比例变址+偏移量EA=(B)+(I)×S+A(9)相对寻址指令地址=(PC)+APC为程序计数器(指令指针寄存器)Pentium的寻址方式(EA的获取方式)序号寻址方式名称有⑴立即数——可为8位、16位、32位⑵寄存器寻址:一般指令可使用8位、16位或32位通用寄存器;对64位浮点数操作,要使用一对32位寄存器;少数指令使用段寄存器寻址⑶直接寻址:也称偏移量(8位、16位、32位)寻址⑷基址寻址:基址寄存器B可以是通用寄存器中任何一个⑸基址+偏移量寻址:B是32位通用寄存器中任何一个⑹比例地址+偏移量寻址:也称为变址寻址方式,变址寄存器I是32位通用寄存器中除ESP外的任何一个⑺,⑻是⑷,⑹两种的组合,偏移量可有可无⑼相对寻址:适用于转移控制类指令——EIP或IP的内容加上一个有符号的偏移量,形成CS段的段内偏移对32位寻址方式的几点说明:⑴立即数——可为8位、16位、32位对32位寻址方式的几点说PowerPC是RISC,寻址方式简单,按指令类型分类2.PowerPC寻址方式指令寻址方式算法取数/存数寻址间接寻址EA=(BR)+D间接变址寻址EA=(BR)+(IR)转移寻址绝对寻址EA=I相对寻址EA=(PC)+I间接寻址EA=(L/CR)定点计算寄存器寻址EA=GPR立即寻址操作数=I浮点计算寄存器寻址EA=FPR其中:BR——基址寄存器;IR——变址寄存器;L/CR——链接或计数寄存器;GPR——通用寄存器;FPR——浮点寄存器;D——偏移量;I——立即数PowerPC是RISC,寻址方式简单,按指令类型分类2.[例4]一种二地址RS型指令的结构如下所示I——间接寻址标志,X——寻址模式,D——偏移量;通过I、X、D的组合,可构成下面的寻址方式,请写出各寻址方式的名称[解]:⑴直接寻址⑵相对寻址⑶变址寻址⑷寄存器间接寻址⑸间接寻址⑹基址寻址寻址方式IX有效地址E算法说明(1)000E=D(2)001E=(PC)+DPC为程序计数器(3)010E=(R2)+DR2为变址寄存器(4)111E=(R3)(5)100E=(D)(6)011E=(R1)+DR1为基址寄存器6位4位1位2位16位OP

通用寄存器IX偏移量D[例4]一种二地址RS型指令的结构如下所示I——间接寻址4.5

典型指令4.5.1指令的分类一个较完善的指令系统按照功能不同可分为4类——数据处理、数据存储、数据传送和程序控制具体的指令类型:数据传送类、算术运算类、逻辑运算类、程序控制类、输入输出类、字符串类、系统控制类目录4.5

典型指令4.5.1指令的分类一个较完善的指令系统1.数据传送指令——实现主存和寄存器、寄存器和寄存器之间的数据传送包括:取数、存数、传送、成组传送、字节交换、清累加器、堆栈操作指令等2.算术运算指令——定点或浮点的算术运算,大型机中有向量运算指令包括:二进制定点加、减、乘、除;浮点加、减、乘、除;求反、求补;算术移位;算术比较;十进制加、减运算指令等3.逻辑运算指令——无符号数的位操作、代码的转换、判断及运算包括:逻辑加、逻辑乘、按位加、逻辑移位(对寄存器的内容实现左移、右移或循环移位)等指令4.5.1指令的分类1.数据传送指令4.5.1指令的分类4.程序控制指令——也称转移指令转移地址采用直接寻址和相对寻址方式确定包括:各种条件转移指令;无条件转移、转子程序、返回主程序、中断返回指令等5.输入输出指令

——实现外部设备与CPU之间、外设与外设之间的信息传送

6.字符串处理指令——是一种非数值处理指令包括:字符串传送、字符串转换、字符串替换等4.5.1指令的分类(续)4.程序控制指令——也称转移指令4.5.1指令的分类(续)7.特权指令——具有特殊权限的指令,只用于操作系统或其他系统软件,一般不直接提供给用户使用多用户、多任务的计算机系统中必不可少,主要用于系统资源的分配和管理8.其他指令

——一些系统控制用的特殊指令如:状态寄存器置位/复位指令、测试指令、暂停,空操作等4.5.1指令的分类(续)7.特权指令4.5.1指令的分类(续)4.5.2基本指令系统的操作CISC中,基本指令系统仅占指令系统的20%,如P132表4.1120%-80%规律:CISC中大约有20%的指令使用频率高,约占整个程序的80%;有80%的不常用指令只占整个程序的20%4.5.3精简指令系统CISC存在的问题:庞大的指令集;纷繁复杂的寻址模式; 硬件实现复杂(硬件资源的利用率低)RISC指令系统的主要特点:⑴选取使用频率最高的一些简单指令,指令条数少⑵指令长度固定,指令格式种类少⑶只有取数/存数指令访问存储器,其余指令都对寄存器操作典型RISC机指令系统的基本特征如P133表4.124.5.2基本指令系统的操作CISC中,基本指令系统仅占指令PowerPC机(字长32位)的指令系统共64条指令,都是32位,且格式规整,分为5种:(1)整数算术、逻辑、移位/旋转(循环移位)指令(2)浮点算术指令(3)取数/存数指令(4)条件寄存器指令(5)转移指令PowerPC机(字长32位)的指令系统共64条指令,都是PowerPC机的指令类型与格式(1)6位5位5位16位算术目标寄存器源寄存器源寄存器O加、减等R与、或等目标寄存器源寄存器有符号立即值逻辑源寄存器目标寄存器源寄存器与、或、异或等R与、或等源寄存器目标寄存器无符号立即值旋转源寄存器目标寄存器移位总量屏蔽开始屏蔽结束R旋转或移位源寄存器目标寄存器源寄存器移位类型或屏蔽R旋转源寄存器目标寄存器移位总量屏蔽XOSR旋转源寄存器目标寄存器源寄存器屏蔽XOR移位源寄存器目标寄存器移位总量移位类型或屏蔽SR(a)整数算术、逻辑、移位/旋转指令Ld/st间接目标寄存器基址寄存器偏移Ld/st间接目标寄存器基址寄存器变址寄存器大小、符号、修改/Ld/st间接目标寄存器基址寄存器偏移XO(b)取数/存数指令PowerPC机的指令类型与格式(1)6位5位5位16位算PowerPC机的指令类型与格式(2)6位5位5位16位浮点单/双精度目标寄存器源寄存器源寄存器源寄存器Fadd等R(c)浮点算术指令CR目标位源位源位与、或、异或等/(d)条件寄存器逻辑指令转移长立即数AL条件转移选项CR位转移偏移AL条件转移选项CR位通过链或计数寄存器间接L(e)转移指令注: A=绝对或PC相对;O=XER中记录溢出;XO=操作码扩展

L=链接到子程序;R=CRI中记录条件;S=移位总量域的部分PowerPC机的指令类型与格式(2)6位5位5位16位浮

4.6

ARM汇编语言嵌入式处理器ARM的汇编语言(1)指令类型指令示例含义说明算术运算加ADDr1,r2,r3r1=r2+r3略减SUBr1,r2,r3r1=r2-r3数据传送取数(字)至寄存器LDRr1,[r2,#20]r1=Mem[r2+20]自寄存器存数(字)STRr1,[r2,#20]Mem[r2+20]=r1取半字至寄存器LDRHr1,[r2,#20]r1=Mem[r2+20]取半字带符号数至寄存器LDRHSr1,[r2,#20]r1=Mem[r2+20]自寄存器存半字STRHr1,[r2,#20]Mem[r2+20]=r1取字节至寄存器LDRBr1,[r2,#20]r1=Mem[r2+20]取字节带符号数至寄存器LDRBSr1,[r2,#20]r1=Mem[r2+20]自寄存器存字节STRBr1,[r2,#20]Mem[r2+20]=r1交换SWPr1,[r2,#20]r1

Mem[r2+20]传送MOVr1,r2r1=r2目录16个寄存器(r0

r12,SP,Ir,PC),230个存储字(字节编址,连续字的地址相差4)4.6

ARM汇编语言嵌入式处理器ARM的汇编语言(1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论