《计算机组成原理第五章》由会员分享,可在线阅读,更多相关《计算机组成原理第五章(55页珍藏版)》请在金锄头文库上搜索。
1、第五章第五章 指指 令令 系系 统统5.1 机器指令机器指令 5.2 操作数类型和操作类型操作数类型和操作类型 5.3 寻址方式寻址方式 5.4 指令格式举例指令格式举例 5.5 RISC 技术技术 活申蛰现鸦苛蝇习依蜜脸吮菊托赴审固到牢权谢奔翅蛾拓简送搂邓烂曰竭计算机组成原理第五章计算机组成原理第五章5.1 指令系统的发展与性能要求1、指令在计算机系统中的地位、指令在计算机系统中的地位(1)是软件和硬件分界面的一个主要标志)是软件和硬件分界面的一个主要标志硬件设计人员采用各种手段实现它;硬件设计人员采用各种手段实现它;软件设计人员则利用它编制各种各样的系统软件设计人员则利用它编制各种各样的系
2、统软件和应用软件软件和应用软件(2)是硬件设计人员和软件设计人员之间)是硬件设计人员和软件设计人员之间的分界面,也是他们之间沟通的桥梁。的分界面,也是他们之间沟通的桥梁。腥压龋截昼拥碍剿泄腿吵滔绿晦丁掺弃茵夏坏泵氖塌锚蛮诞鸟痕塘袭袜龙计算机组成原理第五章计算机组成原理第五章5.1 指令系统相关概念指令系统相关概念l指令就是规定计算机执行某种操作的指示与命令。指令就是规定计算机执行某种操作的指示与命令。l从计算机组成的层次结构来说,指令分:从计算机组成的层次结构来说,指令分:l微指令:在微程序控制的计算机中,将由同时发出微指令:在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作的控
3、制信号所执行的一组微操作 。 属于硬件属于硬件l宏指令:也是汇编指令,允许程序员把一组指令定宏指令:也是汇编指令,允许程序员把一组指令定义成几个短名字。定义之后,可以在代码中用一条义成几个短名字。定义之后,可以在代码中用一条宏指令来代替一组指令,节省程序员的时间、简化宏指令来代替一组指令,节省程序员的时间、简化应用,也使得程序更易读。属于软件。应用,也使得程序更易读。属于软件。l机器指令:介于微指令与宏指令之间。机器指令:介于微指令与宏指令之间。咨突苹革隆髓臆咬轧别榜烧燕笔瓤汪些浆荔卸先畏篱送腰挞妻颅邪麦龟弓计算机组成原理第五章计算机组成原理第五章计算机语言计算机语言l低级语言是指机器语言和汇
4、编语言(助记符)低级语言是指机器语言和汇编语言(助记符),比如比如机器语言全部是二进制代码机器语言全部是二进制代码,l高级语言是诸如高级语言是诸如Basic,C,Pascal,Delphi之类的语言之类的语言 低低级语言编写很麻烦级语言编写很麻烦,l下边以下边以a=a+b (a取取2,b取取3)为例为例 l机器机器: (一大串一大串1和和0,不再给出不再给出,因为的确很麻烦因为的确很麻烦) l汇编汇编: MOV AX,2 l MOV BX,3 l ADD AX,BX lC语言语言: int a,b; l a=2; b=3; a=a+b;笑牢涝害啃荐又脐而福簿匈程叠膝缩曹钟抡滞碉会痕婶孤治纷断轨
5、葵抗焕计算机组成原理第五章计算机组成原理第五章机器码与汇编语言之间的关系机器码与汇编语言之间的关系lB83412 对应与对应与 MOV AX,1234Hl1011 1000 0011 0100 0001 0010l 对寄存对寄存器操作器操作以字为单以字为单位操作位操作操作内容操作内容Mov呀喘狮挠概沼噪些扣犁全惹娩善福邑芥凶毕挤楔晴六豁词币捶讳蒜生莲急计算机组成原理第五章计算机组成原理第五章机器码分析00h:BA110103h:B40905h:B90A0008hCD210Ah:E2FC0Ch:B4010Eh:CD2110h:C311h:68656C6C6F2124MOVDX,OFFSETmsg
6、MOVAH,9MOVCX,10next:INT21hLOOPnextMOVAH,1INT21hRETmsghello!怕副侄滨话找鸟籽李魂袄漏陋永颐镶稳龚同阳凯跟昏葛酞炮延冻荧舔姐兵计算机组成原理第五章计算机组成原理第五章指令系统的发展与性能要求低级语言与高级语言关系比较内容高级语言低级语言1对程序员的训练要求(1)通用算法(2)语言规则(3)硬件知识有较少不要有较多要2对机器独立的程度独立不独立3编制程序的难易程度易难4编制程序所需时间短较长5程序执行时间较长短6编译过程中对计算机资源的要求多少塔失幌适紫夸撕涎撞返银库朔凳黔昧罩吴磺邀衡洱掠丈苹队玫虫鳃兢径茵计算机组成原理第五章计算机组成原理
7、第五章指令系统的发展与性能指令系统的发展与性能l指令系统就是指令系统就是CPU能够执行的所有机器指令的集合。能够执行的所有机器指令的集合。l指令系统决定了计算机的基本功能,指令系统的设计是计算机系统设计的指令系统决定了计算机的基本功能,指令系统的设计是计算机系统设计的一个核心问题。它不仅与计算机的硬件设计紧密相关,而且直接影响到系一个核心问题。它不仅与计算机的硬件设计紧密相关,而且直接影响到系统软件设计的难易程度。统软件设计的难易程度。l完善的计算机的指令系统应具备:完善的计算机的指令系统应具备:1、完备性:一台计算机中最基本的、必不可少的指令构成了指令系统的完备、完备性:一台计算机中最基本的
8、、必不可少的指令构成了指令系统的完备性。性。2、有效性:指利用该指令系统所提供的指令编制的程序能够产生高效率。高、有效性:指利用该指令系统所提供的指令编制的程序能够产生高效率。高效率主要表现在空间和时间方面,即占用存储空间小、执行速度快。效率主要表现在空间和时间方面,即占用存储空间小、执行速度快。3、规整性:指令操作的对称性和匀齐性,指令格式与数据格式的一致性。、规整性:指令操作的对称性和匀齐性,指令格式与数据格式的一致性。(1)对称性:在指令系统中,所有寄存器和存储单元都可同等对待,这对简)对称性:在指令系统中,所有寄存器和存储单元都可同等对待,这对简化程序设计,提高程序的可读性非常有用。化
9、程序设计,提高程序的可读性非常有用。(2)匀齐性:是指一种操作性质的指令可以支持各种数据类型。)匀齐性:是指一种操作性质的指令可以支持各种数据类型。(3)指令的格式与数据格式的一致性:指令长度与数据长度有一定关系,以)指令的格式与数据格式的一致性:指令长度与数据长度有一定关系,以方便存取和处理。方便存取和处理。4、兼容性:一般是指计算机的体系结构设计基本相同,机器之间具有相同的、兼容性:一般是指计算机的体系结构设计基本相同,机器之间具有相同的基本结构、数据表示和共同的基本指令集合。基本结构、数据表示和共同的基本指令集合。弘株兼胜峨藏城鼎滓容清蒋刹挤龙住粉鬃绪丢坚谚邱迸捌俞坟乓马惮廊鹊计算机组成
10、原理第五章计算机组成原理第五章机机 器器 指指 令令一、指令的一般格式一、指令的一般格式 操作码字段操作码字段 地址码字段地址码字段1. 操作码操作码反映机器做什么操作反映机器做什么操作(1) 长度固定长度固定(2) 长度可变长度可变用于指令字长较长的情况用于指令字长较长的情况 ,RISC如如 IBM 350操作码操作码 8 位位操作码分散在指令字的不同字段中操作码分散在指令字的不同字段中尚瓷滋蚊腿挟镀赤岿诬殃疯拽耳卜兑彰首擎蟹喧倒示枣剧作匿叙祭刘检幌计算机组成原理第五章计算机组成原理第五章(3) 扩展操作码技术扩展操作码技术操作码的位数随地址数的减少而增加操作码的位数随地址数的减少而增加OP
11、 A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A3111111111111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作码位操作码8 位操作码位操作码12 位操作码位操作码16 位操作码位操作码15条三地址指令条三地址指令15条二地址指令条二地址指令15条一地址指令条一地址指令16条零地址指令条零地址指令5.1航胳脱齿涤絮束瘁妒瓤撼按彭悍荐闸受傲穿梆世腰憎纺哥腕耕功弧瑚柜蕉计算
12、机组成原理第五章计算机组成原理第五章2. 地址码地址码(1) 四地址四地址OP A1 A2 A3 A48 6 6 6 6A1 第一操作数地址第一操作数地址A2 第二操作数地址第二操作数地址A3 结果的地址结果的地址A4 下一条指令地址下一条指令地址若若 PC 代替代替 A4(A1) OP (A2) A34 次访存次访存寻址范围寻址范围 26 = 645.1设指令字长为设指令字长为 32 位位操作码固定为操作码固定为 8 位位入耿澡迁凌束茎慧弱罢伐嗅窥勃雪褥字经吮撂遁潦唤朔誊焕验舱衷赛涛沽计算机组成原理第五章计算机组成原理第五章2. 地址码地址码(2) 三地址三地址8 8 8 8 OP A1 A
13、2 A34 次访存次访存寻址范围寻址范围 28 = 256若若 A3 用用 A1 或或 A2 代替代替5.1这种格式虽然省去了一个地址,但指这种格式虽然省去了一个地址,但指令长度仍比较长,所以只在字长较长令长度仍比较长,所以只在字长较长的大、中型机中使用,而小型、微型的大、中型机中使用,而小型、微型机中很少使用机中很少使用。(A1) OP (A2) A3(PC)+1PC堡汐末缸径毡闻拱汇泳助毅芒忱彪趣芽稚物酝沧豆祸椎痛娃居舀阀认绑抛计算机组成原理第五章计算机组成原理第五章(3) 二地址二地址OP A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或4 次访存
14、次访存若若ACC 代替代替 A1(或(或A2)若结果存于若结果存于 ACC 寻址范围寻址范围 212 = 4 K3次访存次访存5.1(PC)+1PC二地址地址根据操作数的物理位置分为:lSS存储器-存储器类型lRS寄存器-存储器类型lRR寄存器-寄存器类型慢锈笛颤炭获您库绚以注误嚷牌倪瓦捏主锣可疟信嵌馁牡野蓖洋各抽粥楼勤计算机组成原理第五章计算机组成原理第五章(4) 一地址一地址(5) 零地址零地址OP A18 24无地址码无地址码(ACC) OP (A1) ACC2 次访存次访存寻址范围寻址范围 224 = 16 M 单操作数运算指令,如单操作数运算指令,如“+1”、“-1”、“求反求反”指
15、令中给出一个源操作数的地址指令中给出一个源操作数的地址(PC)+1PC“停机停机”、“空操作空操作”、“清除清除”等控制类指令。等控制类指令。弱际岭浪锨古腺林别蕊柄私买横干虏藏赡且哮霞淫晃甲丧掳衡培涪子佩孤计算机组成原理第五章计算机组成原理第五章二、指令字长二、指令字长指令字长决定于指令字长决定于操作码的长度操作码的长度指令字长指令字长 = 存储字长存储字长2. 指令字长指令字长 可变可变操作数地址的长度操作数地址的长度操作数地址的个数操作数地址的个数1. 指令字长指令字长 固定固定按字节的倍数变化按字节的倍数变化5.1指令字长度(一个指令字包含二进制代码的位数)指令字长度(一个指令字包含二进
16、制代码的位数)机器字长:计算机能直接处理的二进制数据的位数机器字长:计算机能直接处理的二进制数据的位数。捷咨贡缮办改荒样咏兄丧抱淘勤买涕玄芋圈邹馁拢暑射栅习耿旨趋袜扦织计算机组成原理第五章计算机组成原理第五章二、指令字长二、指令字长5.1多字长指令多字长指令的优缺点:的优缺点:优点:提供足够的地址位来解决访问内存任何单元优点:提供足够的地址位来解决访问内存任何单元的寻址问题的寻址问题 ;缺点:必须两次或多次访问内存以取出一整条指令,缺点:必须两次或多次访问内存以取出一整条指令,降低了降低了CPU的运算速度,又占用了更多的存储空间。的运算速度,又占用了更多的存储空间。指令系统中指令采用指令系统中
17、指令采用等长指令等长指令的优点:各种指令字长的优点:各种指令字长度是相等的,度是相等的,指令字结构简单,且指令字长度是不变指令字结构简单,且指令字长度是不变的的 ;采用采用非等长指令非等长指令的的优点:各种指令字长度随指令功的的优点:各种指令字长度随指令功能而异,能而异,结构灵活,能充分利用指令长度,但指令的结构灵活,能充分利用指令长度,但指令的控制较复杂控制较复杂 。枝讲芝孜编辩虫包凄卑谆月颤吨哦咖惨椎惮蓉铲簇赎峭埃榜帅哭谍叠忧诸计算机组成原理第五章计算机组成原理第五章小结小结 当用一些硬件资源代替指令字中的地址码字段后当用一些硬件资源代替指令字中的地址码字段后 当指令的地址字段为寄存器时当
18、指令的地址字段为寄存器时 可扩大指令的寻址范围可扩大指令的寻址范围 可缩短指令字长可缩短指令字长 可减少访存次数可减少访存次数 三地址三地址 OP R1, R2, R3 二地址二地址 OP R1, R2 一地址一地址 OP R1 指令执行阶段不访存指令执行阶段不访存 可缩短指令字长可缩短指令字长5.1成萍铭斤棘菠牵旷则巳吃烹百会季澄山辗沽裹所耀主酥酿五皆苍躁乎兽摹计算机组成原理第五章计算机组成原理第五章5.2 操作数类型和操作种类操作数类型和操作种类一、操作数类型一、操作数类型地址地址数字数字字符字符逻辑数逻辑数无符号整数无符号整数定点数、浮点数、十进制数定点数、浮点数、十进制数ASCII逻辑
19、运算逻辑运算二、数据在存储器中的存放方式二、数据在存储器中的存放方式字地址字地址 为为 低字节低字节 地址地址字地址字地址 为为 高字节高字节 地址地址37621540字地址字地址01低字节低字节04512673字地址字地址01低字节低字节大端大端次序次序小端小端次序次序扼砧税帐抡坑让咯侯看瞎侄旗董莆吾扩蝗均朴损雍垦遮队腆长启糟隔绊狱计算机组成原理第五章计算机组成原理第五章存储器中的数据存放(存储字长为存储器中的数据存放(存储字长为 32 位)位)地址(十进制)地址(十进制) 0 4 812162024283236双字双字双字(地址双字(地址32)双字双字双字(地址双字(地址24)半字(地址半
20、字(地址20)半字(地址半字(地址22)半字(地址半字(地址16)半字(地址半字(地址18)字节(地址字节(地址8)字节(地址字节(地址9)字节(地址字节(地址10)字节(地址字节(地址11)字(地址字(地址 4)字(地址字(地址 0)字节(地址字节(地址14) 字节(地址字节(地址15)字节(地址字节(地址13) 字节(地址字节(地址12)边界对准边界对准地址(十进制)地址(十进制)048字节字节( 地址地址7)字节字节( 地址地址6)字字( 地址地址2)半字半字( 地址地址10)半字半字( 地址地址8)半字半字( 地址地址0)字字( 地址地址4)边界未对准边界未对准 5.2敝阑嘲手摄坍饲血
21、愉短琶胆鼓教忱讥鲤撑那旅反齿养严瞻柞忙罗晾变巡媒计算机组成原理第五章计算机组成原理第五章三、操作类型三、操作类型1. 数据传送数据传送源源目的目的寄存器寄存器寄存器寄存器寄存器寄存器寄存器寄存器存储器存储器存储器存储器存储器存储器存储器存储器置置“1”,清,清“0”2. 算术逻辑操作算术逻辑操作加、减、乘、除、增加、减、乘、除、增 1、减、减 1、求补、浮点运算、十进制运算、求补、浮点运算、十进制运算与、或、非、异或、位操作、位测试、位清除、位求反与、或、非、异或、位操作、位测试、位清除、位求反如如 8086MOVESTORELOADMOVEPUSHPOP例如例如MOVEMOVE5.2ADD
22、SUB MUL DIV INC DEC CMP NEG AAA AAS AAM AAD AND OR NOT XOR TEST墅也未狙造探热侨啮宛诵湃罢淮肠督骋冗远化绣处薯骇绵厕迎腐潦恫园琉计算机组成原理第五章计算机组成原理第五章3. 移位操作移位操作算术移位算术移位4. 转移转移(1) 无条件转移无条件转移 JMP(2) 条件转移条件转移结果为零转结果为零转 (Z = 1) JZ结果溢出转结果溢出转 (O = 1)JO结果有进位转(结果有进位转(C = 1)JC跳过一条指令跳过一条指令 SKP循环移位(带进位和不带进位)循环移位(带进位和不带进位)如如300305306307SKP DZ D
23、 = 0 则跳则跳逻辑移位逻辑移位完成触发器完成触发器5.2苦甜际俏轨豪幌咕棚啮铰泼可直捐拧剃汞羹沸茄题犀绝虫服首证绰卖萌次计算机组成原理第五章计算机组成原理第五章(3) 调用和返回调用和返回CALL SUB1. .CALL SUB2.CALL SUB2RETURNRETURN.主程序主程序地址地址200021002101子程序子程序SUB1240025002501256025612500主存空间分配主存空间分配程序执行流程程序执行流程子程序子程序SUB25.2汉认供从盛筋沈枪玻驰埔疆写别偶鞍慷姥捏恕赊睫汞抗铣刑较枣晕摔补桌计算机组成原理第五章计算机组成原理第五章IN AX, nOUT DX,
24、 ALOUT n, AXOUT DX, AX(4) 陷阱(陷阱(Trap)与陷阱指令)与陷阱指令意外事故的中断意外事故的中断 设置供用户使用的陷阱指令设置供用户使用的陷阱指令如如 8086 INT TYPE 软中断软中断提供给用户使用的陷阱指令,完成系统调用提供给用户使用的陷阱指令,完成系统调用5. 输入输出输入输出 一般不提供给用户直接使用一般不提供给用户直接使用 在出现事故时,由在出现事故时,由 CPU 自动产生并执行(隐指令)自动产生并执行(隐指令)IN AL, DXIN AX, DX入入 端口地址端口地址 CPU 的寄存器的寄存器出出 CPU 的寄存器的寄存器 端口地址端口地址5.2如
25、如如如IN AL, nOUT n, AL装燎璃尾涧昨封舆虚擦抡恤坚牵份漳数狮听秀淋春宁贫洽够忿由接崇面邹计算机组成原理第五章计算机组成原理第五章5.3 寻寻 址址 方方 式式寻址方式寻址方式 确定确定 本条指令本条指令 的的 操作数地址操作数地址下一条下一条 欲执行欲执行 指令指令 的的 指令地址指令地址指令寻址指令寻址数据寻址数据寻址寻址方式寻址方式第撼表疹致燥琳烤德帘肋贰吹捅缨光缮掉吐烽财斤庭诅蛾痊豁惶粮稠抽蒸计算机组成原理第五章计算机组成原理第五章5.3 寻寻 址址 方方 式式一、指令寻址一、指令寻址顺序顺序( PC ) + 1 PC跳跃跳跃由转移指令指出由转移指令指出LDA 1000A
26、DD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1指令地址寻址方式指令地址寻址方式指令地址指令地址指令指令顺序寻址顺序寻址1顺序寻址顺序寻址2顺序寻址顺序寻址3跳跃寻址跳跃寻址7顺序寻址顺序寻址8爪捣兔绰挺矫呻撩蒙委睬质法居液蝉陕汞缔昼陆啪黔赌蘑旱龚耪淬陛白锰计算机组成原理第五章计算机组成原理第五章指令和数据的寻址方式指令和数据的寻址方式l操作数的寻址方式操作数的寻址方式形成操作数有效地址的方法,称为寻址方式。形成操作数有效地址的方法,称为寻址方式。操作数通常放在哪儿呢?操作数通常放在哪儿呢?操作数包含在
27、指令中;操作数包含在指令中;操作数包含在操作数包含在CPU的某一个内部寄存器中;的某一个内部寄存器中;操作数包含在主存储器中;操作数包含在主存储器中;操作数包含在操作数包含在I/O设备的端口中设备的端口中l根据操作数放在不同的地方,从而派生各种不同的根据操作数放在不同的地方,从而派生各种不同的寻址方式,往往不同的计算机具有不同的寻址方式。寻址方式,往往不同的计算机具有不同的寻址方式。稽苏完惺菜长防毯库蒲赣魁道嘲棕剔旨监长痰钢戏卓庙厚炔阉擎卿廊宿潦计算机组成原理第五章计算机组成原理第五章褪掺埃防致嫁童办一迎把醒酥趁山脑绰挠毁戏驶肝爹浊藤魄尉恋扔肥疹踢计算机组成原理第五章计算机组成原理第五章1.
28、立即寻址立即寻址 OP # A立即寻址特征立即寻址特征立即数立即数 可正可负可正可负 补码补码形式地址形式地址 A 就是操作数就是操作数5.3特点:在取指令时,操作码和操作数被同时取出,不必再特点:在取指令时,操作码和操作数被同时取出,不必再次访问存储器,从而提高了指令的执行速度。次访问存储器,从而提高了指令的执行速度。但是,因为操作数是指令的一部分,不能被修改;但是,因为操作数是指令的一部分,不能被修改;而且对于定而且对于定 长指令格式,操作数的大小将受到指令长度的长指令格式,操作数的大小将受到指令长度的限制,限制,A 的位数限制了立即数的范围,所以这种寻址方式的位数限制了立即数的范围,所以
29、这种寻址方式灵活性最差灵活性最差例如:例如:LOAD R1 #2000 功能为:功能为:R1=2000创发老脐多储铰亥郭蔼芦李夺孪耗思率逃尹巨割舟坦揣抓钱物痢忻义报抨计算机组成原理第五章计算机组成原理第五章单地址的移位指令格式:单地址的移位指令格式:D 不表示地址,而是操作数不表示地址,而是操作数 ,F 为标志位为标志位 当当F=1 右移右移 当当F=0 左移左移 OP(移位)移位)F D立即寻址应用范围:立即寻址应用范围: 通常用于给某一寄存器或主存单元赋初值,或者用于通常用于给某一寄存器或主存单元赋初值,或者用于提供一个常数提供一个常数讹葫刷属恰夜卜折级晨度痕想骗粮喉山喜痉绰还歼基啮兔垮岿
30、茬禽鄂乱吕计算机组成原理第五章计算机组成原理第五章2. 直接寻址直接寻址EA = A操作数操作数主存主存寻址特征寻址特征LDAAAACC 执行阶段访问一次存储器执行阶段访问一次存储器 A 的位数决定了该指令操作数的寻址范围的位数决定了该指令操作数的寻址范围有效地址由形式地址直接给出有效地址由形式地址直接给出5.3阻契输犯坡盂蛾呆破拇嫌袍般拖摧涩话肾痰阑依瞧侦眩狐盾强兹壶愈肘调计算机组成原理第五章计算机组成原理第五章3. 隐含寻址隐含寻址操作数地址隐含在操作码中操作数地址隐含在操作码中ADDA操作数操作数主存主存寻址特征寻址特征AACC暂存暂存ALU另一个操作数另一个操作数隐含在隐含在 ACC
31、中中如如 8086MUL 指令指令 被乘数隐含在被乘数隐含在 AX(16位)或位)或 AL(8位)中位)中 指令字中少了一个地址字段,可缩短指令字长指令字中少了一个地址字段,可缩短指令字长5.3烷浸党妨状教之舜忆巩摸劈恫赎酵集忿拾吗应享事仔毛灌彻慢伶嘎喧牌靶计算机组成原理第五章计算机组成原理第五章4. 间接寻址间接寻址EA =(A) 有效地址由形式地址间接提供有效地址由形式地址间接提供OPA寻址特征寻址特征AEA主存主存EAA1EA A1主存主存 EA10 执行指令阶段执行指令阶段 2 次访存次访存 可扩大寻址范围可扩大寻址范围 便于编制程序便于编制程序OPA寻址特征寻址特征A一次间址一次间址
32、多次间址多次间址操作数操作数操作数操作数多次访存多次访存5.3圆航醚廷驯具讲宗逃呸骏舜各斋兵钠袭岭翰慑炸阑呻坤颈埂颐刁忙持欺尊计算机组成原理第五章计算机组成原理第五章 子程序子程序主程序主程序8081201202转转 子程序子程序转转 子程序子程序间接寻址编程举例间接寻址编程举例(A) = 81(A) = 202 间址特征间址特征5.3JMPA 汕俯婿没韶丙劳未级腿孜聋继雇博馆脊婪券褐蛾奔掣晰墅俞立循追狭剩赣计算机组成原理第五章计算机组成原理第五章5. 寄存器寻址寄存器寻址EA = Ri 执行阶段不访存,只访问寄存器,执行阶段不访存,只访问寄存器,执行速度快执行速度快OPRi寻址特征寻址特征
33、寄存器个数有限,可缩短指令字长寄存器个数有限,可缩短指令字长操作数操作数R0RiRn寄存器寄存器有效地址即为寄存器编号有效地址即为寄存器编号5.3优点:优点:缺点:缺点:操作数实现必须装入寄存器操作数实现必须装入寄存器狡十灿券织沟卯咬袒歇钢讣阑毫盔盈莆蔗勤迎惧突诬署裤善脯介访烷还危计算机组成原理第五章计算机组成原理第五章EA = ( Ri )6. 寄存器间接寻址寄存器间接寻址 有效地址在寄存器中,有效地址在寄存器中, 操作数在存储器中,执行阶段访存操作数在存储器中,执行阶段访存操作数操作数主存主存OPRi寻址特征寻址特征 寻址空间达到全字长范围,寻址空间达到全字长范围,计算机中广泛应用计算机中
34、广泛应用地址地址R0RiRn寄存器寄存器有效地址在寄存器中有效地址在寄存器中5.3憨漱凡陋窟臀养年汕诌恍丈侗枚椰要肘搬洲蚀褂霸筐展漾凋华丸抖癣朔垢计算机组成原理第五章计算机组成原理第五章7、相对寻址、相对寻址由程序计数器由程序计数器PC提供基准地址,而指令的提供基准地址,而指令的地址码部分给出相对的位移量地址码部分给出相对的位移量D,两者相加,两者相加后作为操作数的有效地址,即:后作为操作数的有效地址,即:EA(PC)D。验拍商墓棉洛焕跨寝剩瞳响栈枣懒拣普擅磊细辰元砚曰渡一夺凿租撩抨耶计算机组成原理第五章计算机组成原理第五章7、相对寻址、相对寻址对寻址方式使程序模块可采用浮动地址,对寻址方式使
35、程序模块可采用浮动地址,编程时只要确定程序内部操作数与指令之编程时只要确定程序内部操作数与指令之间的相对距离,而无需确定操作数在主存间的相对距离,而无需确定操作数在主存储器中的绝对地址,这样,将程序安排在储器中的绝对地址,这样,将程序安排在主存储器的任意位置都不会影响程序执行主存储器的任意位置都不会影响程序执行的正确性。的正确性。桔舵恕禁移帐丰址据屈茫鼠渗苦度探玛蔚疟钳出篱瓮偶未蚌阁士旨宠揉纤计算机组成原理第五章计算机组成原理第五章(2) 按字节寻址的相对寻址举例按字节寻址的相对寻址举例OP位移量位移量2000 H2008 H8JMP * + 8OP06 H2000 H2008 H8设设 当前
36、指令地址当前指令地址 PC = 2000H转移后的目的地址为转移后的目的地址为 2008H因为因为 取出取出 JMP * + 8 后后 PC = 2002H二字节指令二字节指令故故 JMP * + 8 指令指令 的第二字节为的第二字节为 2008H - 2002H = 6H5.3溯啄早滩鄙又弱幢开喳离匙词憾筹徘贷搏铆荆妙议砖苔而疽巷滨湃晃梦吹计算机组成原理第五章计算机组成原理第五章8. 基址寻址基址寻址(1) 采用专用寄存器作基址寄存器采用专用寄存器作基址寄存器EA = ( BR ) + ABR 为基址寄存器为基址寄存器OPA操作数操作数主存主存寻址特征寻址特征ALUBR 可扩大寻址范围可扩大
37、寻址范围 便于程序搬家便于程序搬家 BR 内容由操作系统或管理程序确定内容由操作系统或管理程序确定 在程序的执行过程中在程序的执行过程中 BR 内容不变,形式地址内容不变,形式地址 A 可变可变5.3休女燥悬舞凌门苯苟盔住叙指佩熊宁艰顽茧健蛋秤数婚吩纤医红燕愤缉董计算机组成原理第五章计算机组成原理第五章(2) 采用通用寄存器作基址寄存器采用通用寄存器作基址寄存器操作数操作数主存主存寻址特征寻址特征ALUOPR0AR0 作基址寄存器作基址寄存器 由用户指定哪个通用寄存器作为基址寄存器由用户指定哪个通用寄存器作为基址寄存器通用寄存器通用寄存器R0Rn-1R1 基址寄存器的内容由操作系统确定基址寄存
38、器的内容由操作系统确定 在程序的执行过程中在程序的执行过程中 R0 内容不变,形式地址内容不变,形式地址 A 可变可变5.3故洛山兹优享院伏骤藕薛怠鸣暂揉摔胞环旁呆屏铺乃灾么嗽捧徊凰广坷汛计算机组成原理第五章计算机组成原理第五章9. 变址寻址变址寻址EA = ( IX ) +AOPA操作数操作数主存主存寻址特征寻址特征ALUIX 可扩大寻址范围可扩大寻址范围 便于处理数组问题便于处理数组问题 IX 的内容由用户给定的内容由用户给定 IX 为变址寄存器(专用)为变址寄存器(专用) 在程序的执行过程中在程序的执行过程中 IX 内容可变,形式地址内容可变,形式地址 A 不变不变通用寄存器也可以作为变
39、址寄存器通用寄存器也可以作为变址寄存器5.3髓轩柱辽赊滔冕膜绷灯桩毛双炸既亩拿捂甥钦喂贼冯粟沾圣飞冈恒厚茁吹计算机组成原理第五章计算机组成原理第五章例例 设数据块首地址为设数据块首地址为 D,求,求 N 个数的平均值个数的平均值直接寻址直接寻址变址寻址变址寻址LDA DADD D + 1ADD D + 2ADD D + ( N -1 )DIV # NSTA ANSLDA # 0LDX # 0INXCPX # NBNE MDIV # NSTA ANS共共 N + 2 条指令条指令共共 8 条指令条指令ADD X, DMX 为变址寄存器为变址寄存器D 为形式地址为形式地址(X) 和和 #N 比较比
40、较(X) +1 X结果不为零则转结果不为零则转 5.3堤撰澡咖拓射冠贼览但退暴抖螟替婆滇湾凶滩匈假舷驾夏吝埂免吏粥禾尽计算机组成原理第五章计算机组成原理第五章10. 堆栈寻址堆栈寻址(1) 堆栈的特点堆栈的特点堆栈堆栈硬堆栈硬堆栈软堆栈软堆栈多个寄存器多个寄存器指定的存储空间指定的存储空间先进后出先进后出(一个入出口)(一个入出口) 栈顶地址栈顶地址 由由 SP 指出指出 11FFFH +12000 H进栈进栈 (SP) 1 SP出栈出栈 (SP)+ 1 SP栈顶栈顶栈底栈底2000 HSP2000 H1FFF HSP1FFFH栈顶栈顶栈底栈底进栈进栈出栈出栈 1FFF H栈顶栈顶 2000
41、H栈顶栈顶5.3备普也拆声划端歼诊道霍诞弗鉴龋粤菇埔早腺假奔汤劈平紊迹坍瓷筋赢冠计算机组成原理第五章计算机组成原理第五章(2) 堆栈寻址举例堆栈寻址举例15200HACCSPX栈顶栈顶200H栈底栈底主存主存151FFHACCSP15栈顶栈顶200H栈底栈底主存主存X1FFHPUSH A 前前PUSH A 后后POP A 前前POP A 后后Y1FFHACCSPX栈顶栈顶200H栈底栈底主存主存151FFH15200HACCSP栈顶栈顶200H栈底栈底主存主存X155.3柄羽雨捅苍扁茵硫睦窘何钡侨牢窥贪救鸿菱畴浦鹃住还拔荚哮皆赃固竟溪计算机组成原理第五章计算机组成原理第五章(3) SP 的修改
42、与主存编址方法有关的修改与主存编址方法有关 按按 字字 编址编址进栈进栈出栈出栈(SP) 1 SP(SP)+ 1 SP 按按 字节字节 编址编址存储字长存储字长 16 位位进栈进栈出栈出栈(SP) 2 SP(SP)+ 2 SP存储字长存储字长 32 位位进栈进栈出栈出栈(SP) 4 SP(SP)+ 4 SP5.3序缴沁漓拐外春关蛋瞒杀渴炽殃鳞两虾宅损柿惭级奋凛赁疾向罗敏襟休聚计算机组成原理第五章计算机组成原理第五章5.4 指令格式举例指令格式举例一、设计指令格式时应考虑的各种因素一、设计指令格式时应考虑的各种因素1. 指令系统的指令系统的 兼容性兼容性(向上兼容)(向上兼容)2. 其他因素其他
43、因素操作类型操作类型数据类型数据类型指令格式指令格式包括指令个数及操作的难易程度包括指令个数及操作的难易程度指令字长、操作码位数指令字长、操作码位数寻址方式寻址方式寄存器个数寄存器个数地址码位数、地址个数地址码位数、地址个数寻址方式、是否采用扩展操作码寻址方式、是否采用扩展操作码瓷燥吉约铆椰爷顾撼诫几镊屑呻碾娜夺磋藤搅停宿袄侠婶熔贾简札保芦镶计算机组成原理第五章计算机组成原理第五章二、指令格式举例二、指令格式举例1. PDP 8指令字长固定指令字长固定 12 位位操作码操作码 间间 页页 地址码地址码访存类指令访存类指令0235411寄存器类指令寄存器类指令 1 1 1 辅助操作码辅助操作码0
44、2 311I/O 类指令类指令 1 1 0 设备设备 操作码操作码02 311985.4壬植蓖瓦隐焙乞蕴募第孵醋痉义平榆哈弊举话儿途钮讥持陌直你寂许伞持计算机组成原理第五章计算机组成原理第五章2. PDP 11源地址源地址OP4 6 6 16 16目的地址目的地址存储器地址存储器地址1存储器地址存储器地址2OP10 6 16目的地址目的地址存储器地址存储器地址目的地址目的地址4 6 6源地址源地址OP 10 6目的地址目的地址OP CODE16OP CODE指令字长有指令字长有 16 位、位、32 位、位、48 位三种位三种零地址零地址 (16 位位)一地址一地址 (16 位位)二地址二地址
45、R R (16 位位)二地址二地址 R M (32 位位)二地址二地址 M M (48 位位)扩展操作码技术扩展操作码技术5.4辞闭锌出包赂鹅部造漱香师美狐贤女也脯拌圭泌二坦菩较宇姜掀忘参铂匆计算机组成原理第五章计算机组成原理第五章3. IBM 360OPR1R2 RR格式格式8 4 4OPR1XBD RX格式格式8 4 4 4 12OPR1R3BD RS格式格式8 4 4 4 12OPBDI SI格式格式8 8 4 12OPB1D1LB2D2 SS格式格式8 8 4 12 4 12二地址二地址 R R基址加变址寻址基址加变址寻址二地址二地址 R M三地址三地址 R M基址寻址基址寻址二地址二
46、地址 M M基址寻址基址寻址基址寻址基址寻址立即数立即数 M5.4辆奎萨及砌谋胚蕉舞苫卿乡快荆绥寺幂魄邑郧峰菏琴舀娠探蔑珍妮旗苹骂计算机组成原理第五章计算机组成原理第五章4. Intel 8086(1) 指令字长指令字长(2) 地址格式地址格式1 6 个字节个字节MOV WORD PTR0204, 0138H 6 字节字节INC AX 1 字节字节一地址一地址NOP 1 字节字节CALL段内调用段内调用 3 字节字节零地址零地址 5 字节字节段间调用段间调用寄存器寄存器 寄存器寄存器寄存器寄存器 立即数立即数寄存器寄存器 存储器存储器ADD AX,BX 2 字节字节ADD AX,3048H 4
47、 字节字节ADD AX,3048H 3 字节字节二地址二地址CALL5.4赴琐戴静叶绸侣冯占狂迸肄损佣矮仰菏溉扎奏乱凉桐函麻夜于巷护父爱剁计算机组成原理第五章计算机组成原理第五章5.5 RISC 技技 术术 一、一、RISC 的产生和发展的产生和发展 80 20 规律规律 典型程序中典型程序中 80% 的语句仅仅使的语句仅仅使 用处理机中用处理机中 20% 的指令的指令 执行频度高的简单指令,因复杂指令执行频度高的简单指令,因复杂指令 的存在,执行速度无法提高的存在,执行速度无法提高RISC(Reduced Instruction Set Computer)CISC(Complex Instr
48、uction Set Computer) RISC技术技术 能否用能否用 20% 的简单指令组合不常用的的简单指令组合不常用的 80% 的指令功能的指令功能?砍牵佃育监啃召在晴畏棺稗膳大湾丝锯釉梅般芋盏富逾簇驶亏撵氟剧伞关计算机组成原理第五章计算机组成原理第五章例题l某某16位机器所使用的指令格式和寻址方式如下所示,该位机器所使用的指令格式和寻址方式如下所示,该机有两个机有两个20位基址寄存器,四个位基址寄存器,四个16位变址寄存器,十六位变址寄存器,十六个个16位通用寄存器。指令汇编格式中的位通用寄存器。指令汇编格式中的S(源),(源),D(目(目标)都是通用寄存器,标)都是通用寄存器,M是
49、主存中的一个单元。三种指是主存中的一个单元。三种指令的操作码分别是令的操作码分别是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是传送指令,是传送指令,STO为存数指令,为存数指令,LAD为取数指令。要求:为取数指令。要求:游螺孝烁腕仑湛扦统帛隆杉毡痞音泞梯有骚拱宫硝臼侄逊渭龙昔野梯凛匡计算机组成原理第五章计算机组成原理第五章(1)分析三种指令的指令格式与寻址方式特点。)分析三种指令的指令格式与寻址方式特点。(2)CPU完成哪一种操作所花时间最短完成哪一种操作所花时间最短?哪一哪一种操作所花时间最长种操作所花时间最长?第二种指令的执行时间有第二种指令的
50、执行时间有时会等于第三种指令的执行时间吗时会等于第三种指令的执行时间吗?(3)下列情况下每个十六进制指令字分别代表)下列情况下每个十六进制指令字分别代表什么操作什么操作?其中如果有编码不正确,如何改正才其中如果有编码不正确,如何改正才能成为合法指令能成为合法指令?(F0F1)H (3CD2)H (2856)H (6FD6)H (1C2)H剿壹哩窟拄岳稿韵咐岗蹈情育释举特帖砌凄乡雪接比爽勾莲狸拴要捞流悸计算机组成原理第五章计算机组成原理第五章l第一种指令是单字长二地址指令,第一种指令是单字长二地址指令,RR型;第二种指令是型;第二种指令是双字长二地址指令,双字长二地址指令,RS型,其中型,其中S
51、采用基址寻址或变址寻址,采用基址寻址或变址寻址,R由源寄存器决定;第三种也是双字长二地址指令,由源寄存器决定;第三种也是双字长二地址指令,RS型,型,其中其中R由目标寄存器决定,由目标寄存器决定,S由由20位地址(直接寻址)决定。位地址(直接寻址)决定。l 处理机完成第一种指令所花时间最短,因为是处理机完成第一种指令所花时间最短,因为是RR型指型指令,不需要访问存储器。第二种指令所花时间最长,因为令,不需要访问存储器。第二种指令所花时间最长,因为是是RS型指令,需要访问存储器,同时要进行寻址方式的变型指令,需要访问存储器,同时要进行寻址方式的变换运算(基址或变址),这也需要时间。第二种指令的执
52、换运算(基址或变址),这也需要时间。第二种指令的执行时间不会等于第三种指令,因为第三种指令虽然也访问行时间不会等于第三种指令,因为第三种指令虽然也访问存储器,但节省了求有效地址运算的时间开销。存储器,但节省了求有效地址运算的时间开销。l 根据已知条件:根据已知条件:MOV(OP)001010,STA(OP)011011,LDA(OP)111100,将指令的十六进制格式转将指令的十六进制格式转换成二进制代码且比较后可知:换成二进制代码且比较后可知:l(F0F1)H (3CD2)H 指令代表指令代表LDA指令,编码正确,指令,编码正确,其含义是把主存(其含义是把主存(13CD2)H 地址单元的内容
53、取至地址单元的内容取至15号寄号寄存器。存器。l(2856)H 指令代表指令代表MOV指令,编码正确,含义是把指令,编码正确,含义是把6号号源寄存器的内容传送至源寄存器的内容传送至5号目标寄存器。号目标寄存器。 l(6FD6)H 是单字长指令,一定是是单字长指令,一定是MOV指令,但编码错指令,但编码错误,可改正为(误,可改正为(28D6)Hl(1C2)H 是单字长指令,代表是单字长指令,代表MOV指令,但编码错误,指令,但编码错误,可改正为(可改正为(28C2)H 。房雀丁沼仆桅豫吞加巩囤幅和碧嚎鉴宵俱腥斩货霹拜俄均吊睡分掂邹痔悍计算机组成原理第五章计算机组成原理第五章l某机器的某机器的16
54、位单字长访内指令格式如下:位单字长访内指令格式如下:l其中,其中, A为形式地址,补码表示(其中一位为符号位)为形式地址,补码表示(其中一位为符号位)lI为直接为直接/间接寻址方式:间接寻址方式:I0为间接寻址,为间接寻址, I1为直接寻址为直接寻址lM为寻址模式:为寻址模式:0为绝对地址;为绝对地址; 1为基地址;为基地址; 2为相对地址;为相对地址; 3为立即寻址为立即寻址lX为变址寻址为变址寻址l设设PC、Rx、Rb为指令计数器、变址寄存器、基地址寄存器为指令计数器、变址寄存器、基地址寄存器l回答下列问题:回答下列问题:l该指令能定义多少种操作?立即寻址操作数的范围是多少?该指令能定义多少种操作?立即寻址操作数的范围是多少?l设基址寄存器为设基址寄存器为14位,在非变址直接基地址寻址时,确定存位,在非变址直接基地址寻址时,确定存储器可寻址的范围?储器可寻址的范围?l间接寻址时,寻址范围是多少?间接寻址时,寻址范围是多少?42118OPMIXA庭辱络骇村谗簇斤晦咖矣菱工蠕车早悬愿肩隆纯容盈升伎入蹬么洒娜狄罪计算机组成原理第五章计算机组成原理第五章