计算机组成原理第四章指令系统[一]_第1页
计算机组成原理第四章指令系统[一]_第2页
计算机组成原理第四章指令系统[一]_第3页
计算机组成原理第四章指令系统[一]_第4页
计算机组成原理第四章指令系统[一]_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、第四章第四章 指令系统指令系统指令指令(instruction): (instruction): 计算机硬件能识别并直接计算机硬件能识别并直接执行的操作命令执行的操作命令( (如加、减、传送、转移等如加、减、传送、转移等), ),即机器指令即机器指令(Machine Instruction)(Machine Instruction)。 指令系统指令系统( (指令集:指令集:instruction sets):instruction sets):一台计算机一台计算机 能执行的全部指令的集合。能执行的全部指令的集合。 指令系统反映了计算机具有的基本功能,是计指令系统反映了计算机具有的基本功能,是计

2、 算机系统硬件、软件的主要分界面。算机系统硬件、软件的主要分界面。 指令系统既是计算机硬件设计的主要依据指令系统既是计算机硬件设计的主要依据,又是又是计算机软件设计的基础计算机软件设计的基础,所以所以,一台计算机指令系一台计算机指令系统的优劣直接影响着计算机系统的性能统的优劣直接影响着计算机系统的性能.4.3 CISC4.3 CISC和和RISCRISC4.2 4.2 指令和数据的寻址方式指令和数据的寻址方式4.1 4.1 指令格式指令格式主要学习内容:主要学习内容:学习指令系统的目的:对于了解计算机的工作过学习指令系统的目的:对于了解计算机的工作过程和控制方法有重要的作用。程和控制方法有重要

3、的作用。 4.1 4.1 指令格式指令格式操作码操作码地址码地址码 操作码操作码(Operation code):(Operation code):指明该指令执行指明该指令执行什么性质的操作什么性质的操作, ,不同的指令有不同的操作不同的指令有不同的操作码码. .其位数反映了机器操作种类其位数反映了机器操作种类, ,即机器允许即机器允许的指令条数的指令条数. . 地址码地址码: :指明操作数所在的地址指明操作数所在的地址(Source (Source operand reference),operand reference),结果存放的地址结果存放的地址(Result (Result oper

4、and reference)operand reference)以及下一条指令的地址以及下一条指令的地址(Next instruction reference).(Next instruction reference). 1. 1.指令格式指令格式 机器字长机器字长: :计算机能直接处理的二进制数据的计算机能直接处理的二进制数据的位数位数, ,通常与主存单元的位数一致通常与主存单元的位数一致. . 指令字长指令字长: :一条指令中包含二进制代码的位数一条指令中包含二进制代码的位数. . 存储字长存储字长: :存储单元中二进制数的位数存储单元中二进制数的位数. .(1) 三个容易混淆的基本概念三

5、个容易混淆的基本概念 (2) 指令的长度指令的长度 单字长指令:指令字长等于机器字长单字长指令:指令字长等于机器字长. . 双字长指令双字长指令: : 指令字长等于两个机器字长的指令指令字长等于两个机器字长的指令. .例如例如:IBM 370:IBM 370的指令长度有的指令长度有1616位位( (半字半字) )、3232位位( (单字单字) )及及 4848位位( (一个半字一个半字). ). 变长指令字结构:一个指令系统中变长指令字结构:一个指令系统中, ,各种指令字各种指令字长度随功能而异长度随功能而异.CISC.CISC采用变长指令字结构采用变长指令字结构. . 等长指令字结构等长指令

6、字结构: :一个指令系统中一个指令系统中, ,各种指令字各种指令字长度是相等的长度是相等的.RISC.RISC采用等长指令字结构采用等长指令字结构. .优点优点: :指令字结构简单指令字结构简单, ,长度固定长度固定, ,指令译码时间指令译码时间短短, ,有利于硬件控制系统的设计有利于硬件控制系统的设计, ,执行速度快执行速度快; ;缺点缺点: :指令平均长度长、容易出现冗余码点指令平均长度长、容易出现冗余码点, ,指令指令不易扩展等不易扩展等. .优点优点: :使用灵活使用灵活, ,充分利用指令的每一位充分利用指令的每一位, ,指令平指令平均长度短均长度短, ,码点冗余少码点冗余少, ,易于

7、扩展易于扩展; ;缺点缺点: :指令格式不规整指令格式不规整, ,取指令时需要多次访存取指令时需要多次访存, ,从而导致不同指令的执行时间不同从而导致不同指令的执行时间不同, ,硬件控制系硬件控制系统复杂统复杂. . 以双操作数运算类指令以双操作数运算类指令( (如加法指令如加法指令) )为例为例: : 2.2.地址码结构地址码结构 设计指令的地址码格式时需解决:设计指令的地址码格式时需解决: 一条指令中指明几个地址一条指令中指明几个地址(与指令所涉及的操作数个与指令所涉及的操作数个数有关数有关); 如何给出地址如何给出地址(显地址显地址- -地址信息明显地给出地址信息明显地给出; ;隐地址隐

8、地址- - -地址信息依据某种事先约定地址信息依据某种事先约定, , 用隐含的式给出用隐含的式给出). ). 地址码应选多长地址码应选多长(与存储单元容量、编址单位大小和与存储单元容量、编址单位大小和寻址方式有关寻址方式有关).操作码操作码A1A1A2A2A3A3下条指令地址下条指令地址(A4)(A4) 指令功能指令功能: (A1) OP (A2) A3: (A1) OP (A2) A3 A4A4提供下一条指令的地址提供下一条指令的地址(1) (1) 四地址双操作数指令四地址双操作数指令 操作码操作码 A1A1A2A2A3A3 操作码操作码 A1A1A2A2(3) 二地址双操作数指令二地址双操

9、作数指令 指令功能指令功能: (A1) OP (A2) A1: (A1) OP (A2) A1下一条指令的地址由下一条指令的地址由PCPC提供提供(2) (2) 三地址双操作数指令三地址双操作数指令 指令功能指令功能: (A1) OP (A2) A3: (A1) OP (A2) A3 下一条指令的地址由下一条指令的地址由PCPC提供提供 (4) (4) 一地址双操作数指令一地址双操作数指令 操作码操作码A1A1指令功能指令功能: (A1) OP (AC) AC: (A1) OP (AC) ACACAC为累加寄存器为累加寄存器下一条指令的地址由下一条指令的地址由PCPC提供提供(5) (5) 零

10、地址双操作数指令零地址双操作数指令操作码操作码指令功能指令功能: :堆栈栈顶和次栈顶中的内容从堆栈堆栈栈顶和次栈顶中的内容从堆栈弹出后弹出后, ,进行某种运算进行某种运算, ,结果压入堆栈结果压入堆栈. . 地址个数对程序长度和指令长度的影响地址个数对程序长度和指令长度的影响同一个问题同一个问题, ,用地址数越多的指令编写的程序越短用地址数越多的指令编写的程序越短, ,但指令长度越长但指令长度越长. .例例: :分别用三地址、二地址、一地址指令编制计算分别用三地址、二地址、一地址指令编制计算x=(ax=(ab+c-d)/(e+f)b+c-d)/(e+f)的程序的程序. .(1)(1)三地址指令

11、程序三地址指令程序MUL A,B,X; (A) MUL A,B,X; (A) (B) X(B) XADD X,C,X; (X)+(C) XADD X,C,X; (X)+(C) XSUB X,D,X; (X)-(D) XSUB X,D,X; (X)-(D) XADD E,F,Y; (E)+(F) YADD E,F,Y; (E)+(F) YDIV X,Y,X; (X)/(Y) XDIV X,Y,X; (X)/(Y) X解:假设解:假设a a、b b、c c为操作数为操作数,A,A、B B、C C为操作数地址为操作数地址. . (2) (2)二地址指令程序二地址指令程序 MOV X,A; (A) X

12、MOV X,A; (A) X MUL X,B; (X) MUL X,B; (X) (B) X(B) X ADD X,C; (X)+(C) XADD X,C; (X)+(C) X SUB X,D; (X)-(D) XSUB X,D; (X)-(D) X MOV Y,E; (E) Y MOV Y,E; (E) Y ADD Y,F; (F)+(Y) Y ADD Y,F; (F)+(Y) Y DIV X,Y; (X)/(Y) X DIV X,Y; (X)/(Y) X (3) (3) 一地址指令程序一地址指令程序LOAD E; (E) ACLOAD E; (E) ACADD F; (AC)+(F) AC

13、ADD F; (AC)+(F) ACSTORE X; (AC) XSTORE X; (AC) XLOAD A; (A) ACLOAD A; (A) ACMUL B; (AC) MUL B; (AC) (B) AC(B) ACADD C; (AC)+(C) ACADD C; (AC)+(C) ACSUB D; (AC)-(D) ACSUB D; (AC)-(D) ACDIV X;(AC)/(X) ACDIV X;(AC)/(X) ACSTORE X; (AC) XSTORE X; (AC) X 3.3.操作码:指明指令要完成的操作功能及其特性操作码:指明指令要完成的操作功能及其特性. .指令系统

14、中的每一条指令都有一个唯一确定的操作指令系统中的每一条指令都有一个唯一确定的操作码码, ,不同指令有不同的操作码不同指令有不同的操作码. . 若指令系统中有若指令系统中有mm种操作种操作, ,即指令系统中可包含即指令系统中可包含mm条指令条指令, ,则操作码的位数则操作码的位数n n应满足:应满足: M=2M=n=2m(1) (1) 定长操作码定长操作码: :所有指令的操作码长度一致所有指令的操作码长度一致, ,均为均为n n位位操作码操作码, ,集中位于指令字的固定字段中集中位于指令字的固定字段中, ,最多能够表示最多能够表示2 2n n条指令条指令. . 特点:简单规整特点:简单规整, ,

15、由于定长的操作码在指令字中所占由于定长的操作码在指令字中所占的位数、位置固定的位数、位置固定, ,所以指令译码简单所以指令译码简单, ,有利于简化硬有利于简化硬件设计件设计. . 具体做法具体做法: :在指令中有一个固定长度的字段表示基本在指令中有一个固定长度的字段表示基本操作码操作码, ,而对于一部分不需要某个地址码的指令而对于一部分不需要某个地址码的指令, ,把它们把它们的操作码扩充到该地址字段的操作码扩充到该地址字段, ,也称也称扩展操作码技术扩展操作码技术. .(2) (2) 变长操作码:操作码长度可变变长操作码:操作码长度可变, ,不同指令的操作码不同指令的操作码长度不完全相同长度不

16、完全相同, ,操作码位数不固定操作码位数不固定, ,分散地位于指令分散地位于指令字的不同位置上字的不同位置上. . 特点:可以在指令字长有限的前提下仍保持较丰特点:可以在指令字长有限的前提下仍保持较丰富的指令种类富的指令种类. .但由于操作码的位数不固定且位置分散但由于操作码的位数不固定且位置分散, ,故增加了指令译码与分析的难度故增加了指令译码与分析的难度, ,使硬件设计复杂化使硬件设计复杂化. .例例: :设某机器的指令字长为设某机器的指令字长为1616位位, ,包括基本操作码包括基本操作码4 4位位和三个地址字段和三个地址字段, ,每个地址字段长每个地址字段长4 4位位, ,其格式为其格

17、式为: :OPOPA1A1 A2 A2 A3 A30 03 34 47 78 811 1112121515 采用扩展操作码的方式采用扩展操作码的方式, ,设计设计: :(1)15(1)15条三地址指令条三地址指令,15,15条两地址指令条两地址指令,15,15条条一地址指令一地址指令,16,16条零地址指令条零地址指令. . (2)15(2)15条三地址指令条三地址指令,14,14条两地址指令条两地址指令,31,31条条一地址指令一地址指令,16,16条零地址指令条零地址指令. .0000 XXXX YYYY ZZZZ0000 XXXX YYYY ZZZZ1110 XXXX YYYY ZZZZ

18、1110 XXXX YYYY ZZZZ1111 0000 YYYY ZZZZ1111 0000 YYYY ZZZZ1111 1 1 01 YYYY ZZZZ1111 1 1 01 YYYY ZZZZ1111 1110 0000 ZZZZ1111 1110 0000 ZZZZ1111 1110 0001 ZZZZ1111 1110 0001 ZZZZ1111 1110 1111 ZZZZ1111 1110 1111 ZZZZ1111 1111 0000 ZZZZ1111 1111 0000 ZZZZ1111 1111 1110 ZZZZ1111 1111 1110 ZZZZ1111 1111 1

19、111 00001111 1111 1111 00001111 1111 1111 11111111 1111 1111 11113131条一地条一地址指令址指令1616条零地条零地址指令址指令扩展操作码扩展操作码标志标志扩展操作码扩展操作码标志标志扩展操作码扩展操作码标志标志1515条三地条三地址指令址指令 14 14条二地条二地 址指令址指令指令寄存器指令寄存器4 4:1616译码器译码器译码开始译码开始1515条三地址指令条三地址指令4 4:1616译码器译码器1414条二地址指令条二地址指令4 4:1616译码器译码器3131条一地址指令条一地址指令4 4:1616译码器译码器1616

20、条零地址指令条零地址指令图图4.1 4.1 指令译码逻辑图指令译码逻辑图 注意事项注意事项: : 例例1(P151.1(P151.题题2):2):假设某计算机指令长度为假设某计算机指令长度为2020位位, ,具有双操作具有双操作数、单操作数、无操作数三类指令形式数、单操作数、无操作数三类指令形式, ,每个操作数地址每个操作数地址规定用规定用6 6位表示位表示, ,问:问: 若操作码字段若操作码字段固定为固定为8 8位位, ,现设计出现设计出mm条双操作数指令条双操作数指令,n,n条无操作数指令条无操作数指令, ,在此情况下在此情况下, ,这台计算机最多可以设计出这台计算机最多可以设计出多少条单

21、操作数指令?多少条单操作数指令? 解:解:2 28 8-m-n-m-n条条. . 各指令的操作码一定不能重复各指令的操作码一定不能重复, ,而且各类指令的而且各类指令的格式安排应统一规整格式安排应统一规整. . 短操作码不能与长操作码短操作码不能与长操作码 的前面代码部分相同;的前面代码部分相同; 例例2: 2: 某计算机指令长度为某计算机指令长度为3232位位, ,有有3 3种指令种指令: :双操作数指令、双操作数指令、单操作数指令、无操作数指令单操作数指令、无操作数指令. .现在用现在用扩展操作码扩展操作码的方式的方式设计指令设计指令, ,假设每个操作数地址规定用假设每个操作数地址规定用1

22、212位表示位表示, ,已知有双已知有双操作数指令操作数指令K K条条, ,单操作数指令单操作数指令L L条条, ,问无操作数指令有多少问无操作数指令有多少条条? ?所以所以, ,无操作数指令条数无操作数指令条数= (2= (28 8-K) -K) 2 21212-L -L 2 21212解解: : 由于双操作数指令现有由于双操作数指令现有K K条条( (最多有最多有2 28 8条条), ),所以留所以留有有(2(28 8-K)-K)个编码作为扩展操作码标志个编码作为扩展操作码标志, ,用于扩展到单操用于扩展到单操作数指令作数指令; ;单操作数指令现有单操作数指令现有L L条条( (最多有最多

23、有(2(28 8-K) -K) 2 21212条条), ),所以留所以留有有(2(28 8-K) -K) 2 21212-L-L个编码作为扩展操作码标志个编码作为扩展操作码标志, ,用于扩用于扩展到无操作数指令展到无操作数指令; ; 4.2 4.2 指令和数据的寻址方式指令和数据的寻址方式PCPC+1+1内存内存地址地址0 01 12 27 7LDA 200LDA 200ADD 201ADD 201INCINCLDA 200LDA 200PCPC地址地址内存内存3 34 45 56 67 78 8JMP 6JMP 6LDA 206LDA 206SUB 207SUB 207INCINC LDA

24、200 LDA 200 1. 1.顺序寻址方式顺序寻址方式2.2.跳跃寻址方式跳跃寻址方式 4.2.1 4.2.1 指令的寻址方式指令的寻址方式 寻址寻址: :寻找操作数的地址或下一条将要执行的指令地寻找操作数的地址或下一条将要执行的指令地址,分为指令寻址方式和操作数寻址方式。址,分为指令寻址方式和操作数寻址方式。4.2.2 4.2.2 操作数寻址方式操作数寻址方式(Addressing modes)(Addressing modes) OP OP寻址方式寻址方式MODMOD 形式地址形式地址D D 有效地址有效地址(E):(E):对形式地址进行一定计算而得到的操作数对形式地址进行一定计算而得

25、到的操作数 的实际地址的实际地址, ,由寻址方式和形式地址共同确定由寻址方式和形式地址共同确定. . 形式地址形式地址(D):(D):也称偏移量也称偏移量, ,是指令地址字段中给定的地址是指令地址字段中给定的地址. .指令格式为指令格式为: : 设设DataData为操作数为操作数 寻址方式在指令格式中的表示方法通常有两种寻址方式在指令格式中的表示方法通常有两种: : 由不同的操作码指明操作数的不同寻址方式由不同的操作码指明操作数的不同寻址方式( (操作码操作码指明法指明法); ); 在指令格式中增设寻址方式特征位在指令格式中增设寻址方式特征位( (寻址方式位法寻址方式位法). ). 操作数寻

26、址的目的:操作数寻址的目的:CPUCPU根据指令约定的寻址方式对根据指令约定的寻址方式对地址字段的有关信息做出解释地址字段的有关信息做出解释, ,以找到操作数以找到操作数. .1. 1.立即寻址立即寻址(immediate addressing):(immediate addressing):所需的操作数由指所需的操作数由指令地址码部分直接给出令地址码部分直接给出, ,即操作数包含在指令内即操作数包含在指令内. . Data=D Data=D 优点:取指令的同时操作数被立即取出优点:取指令的同时操作数被立即取出, ,不必再次访问不必再次访问存储器存储器, ,提高了指令的执行速度提高了指令的执行

27、速度. . 缺点:由于指令字的长度有限缺点:由于指令字的长度有限,D,D的位数限制了立即数的位数限制了立即数所能表示的数据范围所能表示的数据范围. .一般情况下用于给某一个寄存器或一般情况下用于给某一个寄存器或存储单元赋予一个初值或提供一个常数存储单元赋予一个初值或提供一个常数. . 例如:例如:Intel8086 Intel8086 中的立即寻址指令中的立即寻址指令. . MOV Ax,2000H; MOV Ax,2000H; 将立即数将立即数2000H2000H存入累加器存入累加器AXAX中中 2.2.存储器直接寻址存储器直接寻址(Memory direct addressing):(Me

28、mory direct addressing):指令的地指令的地址码部分给出操作数的存储单元地址址码部分给出操作数的存储单元地址. . (2) (2)不必作寻址计算不必作寻址计算, ,简单并易于硬件实现简单并易于硬件实现; (3) ; (3) 主存容量主存容量越大越大, ,所需地址码越来越多所需地址码越来越多, ,导致指令的长度增加导致指令的长度增加. . 例例: : 某机主存容量为某机主存容量为 16MB,16MB,若按字节编址若按字节编址, ,其地址码为其地址码为多少位多少位? ?解解:16MB=2:16MB=22424B ,B ,所以地址码为所以地址码为2424位位. .直接寻址的逻辑表

29、达式为直接寻址的逻辑表达式为: : E=D Data=(E)=(D) E=D Data=(E)=(D) IRIROPOP D DD D 操作数操作数主存主存特点特点:(1):(1)在执行阶段只需一次在执行阶段只需一次访问内存访问内存, ,就能取到操作数就能取到操作数; ;3.3.寄存器直接寻址寄存器直接寻址(Register direct addressing):(Register direct addressing):指令指令的地址码部分给出操作数所在的寄存器号的地址码部分给出操作数所在的寄存器号. . E= Ri Data=(E)=(Ri) E= Ri Data=(E)=(Ri) 特点特点

30、:(1):(1)由于操作数位于寄存器中由于操作数位于寄存器中, ,所以不用访存所以不用访存即可取到操作数即可取到操作数, ,所以执行速度较快;所以执行速度较快;(2)(2)因为寄存器因为寄存器数远小于主存单元数数远小于主存单元数, ,所以寻址所需地址短所以寻址所需地址短, ,导致了指导致了指令字短令字短. .IRIROPOP D( D( RiRi ) ) 操作数操作数寄存器寄存器R0R0RiRi4.4.存储器间接寻址存储器间接寻址(Indirect addressing):(Indirect addressing):指令地指令地址码部分给出操作数地址的地址址码部分给出操作数地址的地址. . E

31、=(D) Data=(E)=(D) E=(D) Data=(E)=(D)IRIROPOP D DD D E E操作数操作数E E主存主存缺点缺点: :执行阶段至少两次访执行阶段至少两次访问内存问内存, ,才能取到操作数才能取到操作数. .间址单元间址单元(其内容称其内容称为指针为指针)存储器间接寻址的优点:存储器间接寻址的优点: (1)(1)提供了编程灵活性提供了编程灵活性( (如下图如下图所示所示); ); ( (2)2)有效缩短地址码长度有效缩短地址码长度, ,扩大寻址空间扩大寻址空间. .例例: :指令系统中如有指令系统中如有196196条不同的指令条不同的指令, ,则指令的操作码至少应

32、为则指令的操作码至少应为( )( )位位. .某存储器按字编址某存储器按字编址, ,字长为字长为3232位位, ,指令的形式地址为指令的形式地址为8 8位位, ,直接寻址直接寻址的空间为的空间为( ),( ),一次间接寻址的空间为一次间接寻址的空间为( ).( ).80808181201201202202 主存主存主程序主程序调用子程序调用子程序调用子程序调用子程序 主存主存 子程序子程序JMP AJMP A图中表示两次调用子程序图中表示两次调用子程序, ,只要在调用前先将返回地址存入子程只要在调用前先将返回地址存入子程序最末条指令的形式地址序最末条指令的形式地址A A的存储单元内的存储单元内

33、, ,便可准确返回程序断便可准确返回程序断点点. . 5. 5.寄存器间址寄存器间址(Register indirect addressing):(Register indirect addressing):指令中给出指令中给出寄存器地址寄存器地址, ,而寄存器中存放操作数在内存的地址而寄存器中存放操作数在内存的地址. . E=(Ri) E=(Ri)Data=( (Ri) )Data=( (Ri) )特点特点: :因寄存器数量少因寄存器数量少, ,表示寄存器地址码只需很少几位表示寄存器地址码只需很少几位, ,所以指令代码短所以指令代码短, ,而且取操作数只需访问一次内存而且取操作数只需访问一次

34、内存. .IRIROPOP Ri Ri操作数操作数E E E ERiRi主存主存地址为地址为3030的单元中存放的内容为的单元中存放的内容为40;40;地址为地址为4040的单元中存放的内容为的单元中存放的内容为50;50;地址为地址为5050的单元中存放的内容为的单元中存放的内容为60;60;求以下指令分别将什么数值装入累加器中求以下指令分别将什么数值装入累加器中? ? (1) Load #20 (2)Load 20 (1) Load #20 (2)Load 20 (3) Load (20) (3) Load (20) 地址为地址为2020的单元中存放的内容为的单元中存放的内容为30;30;

35、例例: :在一个单地址指令的计算机系统中有一个累加器在一个单地址指令的计算机系统中有一个累加器, ,给给定以下存储器数值定以下存储器数值: : 解解:(1):(1)立即寻址立即寻址,( ,(累加器累加器)=20)=20 (3) (3)间接寻址间接寻址, (, (累加器累加器)=(20)=(30)=40)=(20)=(30)=40 (2) (2)直接寻址直接寻址, (, (累加器累加器)=(20)=30)=(20)=30 6.6.相对寻址相对寻址(Relative addressing):(Relative addressing):由由PCPC提供基准地址提供基准地址, ,与与指令中的地址码字段

36、指令中的地址码字段( (形式地址形式地址D)D)相加后得到操作数有效相加后得到操作数有效地址地址. .OPOP OPOP D DIRIRPCPC A A加加法法器器操作数操作数S SA AA+DA+DD D主存主存 数据数据=(E)=(PC)+D)=(E)=(PC)+D) E=(PC)+D E=(PC)+DA-1A-1OPOPD D假设假设: :指令均为单字长指令指令均为单字长指令注意注意: :有些计算机有些计算机PCPC中是当前指令地址中是当前指令地址( (当前指令执行完当前指令执行完, ,才将才将PCPC内容加内容加1 1或增量或增量), ),多数计算机多数计算机PCPC中是下一条要执中是

37、下一条要执行指令的地址行指令的地址( (取出当前指令后立即将取出当前指令后立即将PCPC内容加内容加1 1或增或增量量), ),如上图所示如上图所示. .特点特点:(1)D:(1)D可正可负可正可负, ,表示操作数地址与现行指令地址的相表示操作数地址与现行指令地址的相对位置对位置; ;(2)(2)因大多访存的位置均相对靠近正在执行的指令位置因大多访存的位置均相对靠近正在执行的指令位置, ,故故相对寻址可以节省指令中地址码位数相对寻址可以节省指令中地址码位数. . 例:例:某机器字长某机器字长1616位位, ,主存主存 按照字节编址按照字节编址, ,转移指令采转移指令采用相对寻址用相对寻址, ,

38、由两个字节组成由两个字节组成, ,第一字节为操作码第一字节为操作码 字段字段, ,第二字节为相对位移量字段第二字节为相对位移量字段. .假定取指令时假定取指令时, ,每取一个每取一个字节字节PCPC自动加自动加1. 1.若某转移指令所在主存地址若某转移指令所在主存地址 为为2000H,2000H,相对位移量字段的内容为相对位移量字段的内容为06H,06H,则该转移指令成功后的则该转移指令成功后的目标地址为:目标地址为: A.2006H B.2007HA.2006H B.2007H C.2008H D.2009H C.2008H D.2009H 7. 7. 变址寻址变址寻址(displaceme

39、nt addressing):(displacement addressing):指令的地址部分给指令的地址部分给出一个形式地址出一个形式地址, ,并指定一个寄存器为变址寄存器并指定一个寄存器为变址寄存器; ;变址寄变址寄存器内容存器内容(称为变址量称为变址量)与形式地址相加与形式地址相加,得到操作数有效地得到操作数有效地址址.操作数操作数S SOPOPR RD D加加法法器器 N ND+ND+N Data=(E)=( (RData=(E)=( (RX X)+D)+D)R RE=(RE=(RX X)+D)+D指令指令 7. 7. 变址寻址变址寻址(displacement addressing

40、):(displacement addressing):指令的地址部分给指令的地址部分给出一个形式地址出一个形式地址, ,并指定一个寄存器为变址寄存器并指定一个寄存器为变址寄存器; ;变址寄变址寄存器内容存器内容(称为变址量称为变址量)与形式地址相加与形式地址相加,得到操作数有效地得到操作数有效地址址.操作数操作数S SOPOPR RD D加加法法器器 N ND+ND+NR R指令指令 变址寻址的典型应用:某数组存放在一段连续的主存区间中变址寻址的典型应用:某数组存放在一段连续的主存区间中, ,首首址为址为B.B.可让可让B B作为指令中形式地址作为指令中形式地址, ,而变址寄存器中存放修改量

41、而变址寄存器中存放修改量, ,通过通过修改变址寄存器内容修改变址寄存器内容( (所需访问单元与首址单元之间的距离所需访问单元与首址单元之间的距离), ),该指令该指令本身不需任何修改本身不需任何修改, ,就可以访问该数组的任何一个元素就可以访问该数组的任何一个元素. . 变址寻址面向用户变址寻址面向用户, ,可用于访问字符串、数组等成批数据可用于访问字符串、数组等成批数据. .8 8. .基址寻址基址寻址 (Based addressing)(Based addressing):指令中给出一个形式地址:指令中给出一个形式地址, ,并给出基址寄存器号并给出基址寄存器号, ,基址寄存器内容基址寄存

42、器内容( (作为基准量作为基准量) )与形式与形式地址相加得到操作数有效地址地址相加得到操作数有效地址. . E=(RE=(Rb b)+D Data=(E)=( (R)+D Data=(E)=( (Rb b)+D)+D) 基址寻址的典型应用是程序重定位基址寻址的典型应用是程序重定位. . 用户程序的最终可执行形态是目标程序用户程序的最终可执行形态是目标程序, ,目标程序是在操作系目标程序是在操作系统管理下调入主存运行的统管理下调入主存运行的, ,用户在用高级语言编程时并不知道用户在用高级语言编程时并不知道此段程序将被安排在主存的哪一段区域此段程序将被安排在主存的哪一段区域, ,故用户编程时使用与故用户编程时使用与实际主存地址无关的逻辑地址实际主存地址无关的逻辑地址, ,将来在运行时再自动转换为操将来在运行时再自动转换为操作系统分配给它的实际主存地址作系统分配给它的实际主存地址( (物理地址物理地址), ),这个问题称为程序这个问题称为程序重定位重定位. . 实现程序重定位时实现程序重定位时, ,由操作系统给用户程序分配一个基地址并由操作系统给用户程序分配一个基地址并将其装入基址寄存器将其装入基址寄存器, ,在程序执行时可以自动形成实际的主存在程序执行时可以自动形成实际的主存地址地址. .v变址寻址与基

温馨提示

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

评论

0/150

提交评论