




已阅读5页,还剩77页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第4章 指令系统,4.1 指令格式 4.2 寻址方式 4.3 指令类型 4.4 复杂指令系统计算机和精简指令系统计算机 4.5 指令系统举例,2,4.1 指令格式,4.1.1 指令四要素 4.1.2 指令的地址数目 4.1.3 指令的操作码 4.1.4 指令长度,3,4.1.1 指令四要素,1)操作码 表征指令的操作特性与功能。n 2n 2)源操作数地址 通过该地址取得所需的操作数。 来源:寄存器组、主存或虚存、i/o设备 3)目的操作数地址 指出指令的操作结果被存放的地方。 4)下一条指令的地址 顺序执行:隐含(pc)+1 pc 改变执行顺序:显式指出,4,4.1.2 指令的地址数目,根据地址码部分所给出地址的个数可分为: 零地址指令、一地址指令、二地址指令、 三地址指令、多地址指令 1)零地址指令 只有操作码,而没有地址码 无需任何操作数 操作数是隐含的,操作码,5,2)一地址指令 单操作数指令 隐含第二操作数,如: ()(),6,3)二地址指令 双操作数指令 ()() () 进一步分类为 mm rr rm,7,4)三地址指令 ()() 5)多地址指令 用于处理成批数据,8,4.1.3 指令的操作码,1)指令操作码的两种编码方式 定长编码(固定格式) 操作码长度固定, 且集中放在指令字的一个字段中。 变长编码(可变格式) 操作码的长度可变,且分散地放在指令字的不同字段中。,9,2)可变格式指令的扩展技术,指令字中用一个固定长度的字段表示基本操作码,对于不需要某个地址码的指令,可将操作码扩充到地址码字段。 例如:某机器的指令长度为16位,其中4位基本操作码字段,3个4位地址码字段,采用操作码扩展技术可以形成多于16条指令。,10,一种扩展方法如下: 15条三地址指令,操作码 00001110 15条二地址指令, 操作码 11110000 11111110 15条一地址指令, 操作码 111111110000 111111111110 16条一地址指令, 操作码 11111111111100001111111111111111 共61条,11,例题:假设某计算机指令长度为20位,具有二地址指令、一地址指令、零地址指令三类指令形式,在此情况下,这台计算机地址规定用6位表示,问: (1)若操作码字段固定为8位,现已设计出m条二地址指令,n条零地址指令,在此情况下,这台计算机最多可以设计出多少条一地址指令? (2)当二地址指令条数取最大值,且此基础上一地址指令条数也取最大值时,计算这台计算机最多指令数是多少?,12,答: (1)由于操作码的位数决定了指令系统的规模及指令的性质。所以一地址指令的条数:28-m-n=256-m-n (2)应为255+63+64=382条。,13,4.1.4 指令长度,1)指令长度与机器字长的关系 机器字长 是指计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度。 指令长度 一条指令中包含二进制代码的位数。 单字长指令、半字长指令、双字长指令 使用多字长指令的目的 提供足够的地址位来解决访问主存任何单元的寻址问题。,14,2)等长指令字结构、变长指令字结构,等长指令字结构 所有指令的长度都是相等的。 指令字结构简单,指令译码和流水线执行较容易。 变长指令字结构 指令字长度随指令功能而异。 指令字结构灵活,能缩短指令的平均长度,但指令的控制较复杂。,15,4.2 寻址方式,形成操作数或指令地址的方式,称为寻址方式。 寻址方式分为两类 指令寻址方式 操作数寻址方式 指令寻址方式 顺序寻址方式 跳跃寻址方式,16,操作数的寻址方式 指令中地址码字段一般是由形式地址和寻址方式特征位(或字段)组成,并不是操作数的有效地址(实际地址)。 所谓操作数的寻址方式,就是形成操作数的有效地址(ea)的方法。,17,确定一台计算机系统的寻址方式,必须综合考虑以下几点: 指令内包含的地址尽量短,以缩短指令长度 能访问尽可能大的存储空间 寻址方法尽可能简单,简化硬件设计 在不改变指令的情况下,改变地址的实际值,从而方便地访问数组、串、表格等复杂数据。,18,4.2.1 常用的基本寻址方式 1)立即寻址 指令的地址字段指出的是操作数本身。 立即寻址方式的特点: 指令执行速度快; 在执行过程,操作数不能修改。 ea=(pc),19,指令的地址码部分直接给出操作数在存储器中的地址(有效地址)。 有效地址ea=a 直接寻址方式的特点 简单直观,便于硬件实现; 要寻址大容量的主存空间,将造成指令长度加长。,2)直接寻址,20,3)间接寻址,指令中的地址码部分给出一个指示操作数有效地址的地址指示字;通过地址指示字找到操作数的有效地址,再由有效地址找到操作数。 有效地址ea=(a),a,ea,21,间接寻址方式的特点: 非常灵活,当操作数地址需改变时,不必修改指令,只要修改有效地址中的内容即可。 一次间接需两次访问主存才能取得操作数,降低了指令执行速度。,22,4)寄存器寻址方式,操作数存放在cpu的通用寄存器中。 指令中地址码部分给出某一通用寄存器的编号。 ea=ri,操作数,23,5)寄存器间接寻址,指令中地址码部分所指定的寄存器中内容是操作数的有效地址。 有效地址ea=(ri) 寄存器间接寻址方式的特点 只需访问存储器一次即可得到操作数; 寄存器给出全字长的地址码,可寻址较大的存储空间。,操作数,主存,24,6)相对寻址,程序计数器pc的当前内容加上指令给出的形式地址形成操作数的有效地址。 形式地址实际上规定了操作数地址和指令地址的相对位置,这个值称为相对位移量(disp)。 有效地址ea=(pc)+disp,25,相对寻址方式的特点 转移地址不是固定的,随着pc值的变化而变化,有利于程序的再定位。 位移量一般用补码表示。如果位移量为8位,则寻址范围为(pc)128(pc)+127。,26,例题:若某计算机数据线、地址线均是8bit,有一条相对寻址的无条件转移指令存于主存的20h单元中,指令给出的位移量d=00010101b,设该指令占用2个字节,计算: (1)取该指令时pc的内容; (2)该指令执行结束时pc的内容。,27,7)变址寻址,指令地址码部分给出的形式地址与指令中指定的变址寄存器的内容相加开成操作数的有效地址。 有效地址ea=(rx)+a,主存,操作数,x,通用寄存器,ea,28,8)基址寻址,指令地址码部分给出的形式地址与基址寄存器中的内容相加形成操作数的有效地址。 有效地址ea=(rb)+a,主存,操作数,x,通用寄存器,29,基址寻址中基址寄存器提供基准量而指令提供位移量;变址寻址中变址寄存器提供修改量而指令提供基准量。 基址寻址面向系统,用于程序定位和扩大寻址空间;变址寻址面向用户,用于访问数组、向量、字符串等成批数据,以解决程序的循环控制问题。,30,4.2.2 复合型寻址方式,1)基址变址寻址方式 ea= (rb)+ (rx)+a 2)相对间接寻址方式 ea=(pc)+a) 3)间接相对寻址方式 ea=(pc)+(a) 4)变址间接寻址方式 ea=(rx)+a) 5)间接变址寻址方式 ea=(rx)+(a),31,例题:一种单地址指令的结构如下图所示:,其中i为间址特征,x为寻址模式,d为形式地址,设r为通用寄存器,也可作为变址寄存器。在下表中填入适当的寻址方式名称。,32,33,4.3 指令类型,设计指令系统,应考虑如下原则: 完整性 有效性 扩充性 兼容性,34,指令类型(按指令所完成的功能分类) 数据传送指令 算术逻辑运算指令 移位操作指令 浮点运算指令 十进制运算指令 字符串处理指令 转移类指令 堆栈操作指令 输入/输出指令 其他指令,35,1)数据传送指令,一般传送指令 用来实现主存和寄存器之间、主存和主存、寄存器和寄存器之间的数据传送。 数据交换指令 数据块传送指令,36,2)算术逻辑运算指令,(1)算术运算指令 这类指令用于定点数的算术运算 如:加、减、乘、除、加1、减1、求补、比较等指令 (2)逻辑运算指令 与、或、非、异或 位操作:测试、清除、置位、求反等,算术逻辑运算指令通常根据运算结果设置状态位: z、 s 、 c、v、p,37,3)移位操作指令,算术移位(带符号数) 逻辑移位(无符号数) 循环移位:大循环、小循环 双字移位,c,38,4)浮点运算指令 5)十进制运算指令 6)字符串处理指令 如:字符串传送、字符串比较、字符串查找、字符串提取、字符串转换等 7)转移类指令 (1)转移指令 无条件转移指令jump 条件转移指令branch,39,转移指令的转移地址一般采用直接寻址的和相对寻址方式来确定。 采用直接寻址方式,转移地址由指令地址码部分直接给出。 采用相对寻址方式,则称为相对转移,转移地址为当前指令地址(pc的值)和指令地址部分给出的位移量相加。,40,16种可能采用的转移条件 p=1 p=0 z=1 z=0 s=1 s =0 v=1 v=0 无符号数 带符号数 ab c+z=0 (sv)+z =0,41,(2)循环控制指令 (3)调用指令与返回指令 call与jump和branch的主要差别是保留返回地址(用堆栈) 保留、恢复寄存器内容的两种方法 由调用程序保留、恢复 由被调用程序保留、恢复,42,8)堆栈及堆栈操作指令,堆栈是以“先进后出”(filo)方式工作的一个存储区。 堆栈只有一个出口,即当前栈顶;用堆栈指针寄存器sp指定。 压栈操作:,push ax,12h,34h,1234h,43,弹栈的操作,pop bx,1234h,44,堆栈的两种生成方式 自底向上生成方式(向低地址生长) 压栈 push a ;(sp)-1 sp,(a) (sp) 弹栈 pop a ; (sp) a, (sp)+1 sp 自顶向下生成方式(向高地址生长) 压栈 push a ; (sp)+1 sp,(a) (sp) 弹栈 pop a ; (sp) a,(sp)-1 sp,45,堆栈用途 在一般结构的计算机中,堆栈主要用于暂存子程序、中断调用时的返回地址和现场以及用于传送参数。 通常设置参数指针,利用它访问堆栈不受堆栈的filo性质的限制 在堆栈结构的计算机中(如hp-3000),堆栈作为提供操作数和保存运算结果的主要存储区,大多数指令皆访问堆栈(零地址指令)。,46,9)输入/输出(i/o)指令,输入输出指令完成主机与外部设备间的信息(数据信息、状态信息、控制信息)传送。 通常输入输出指令有三种设置方式 专用i/o指令 独立编址 用通用的数据传送指令实现i/o操作 统一编址 通过i/o处理机(通道)执行i/o操作,47,10)其他指令 控制指令 完成某种控制功能的指令,如等待指令、停机指令、空操作指令、开中断、关中断、置条件码指令等 特权指令 具有特殊权限的指令。一般保留给操作系统使用。在多用户、多任务的计算机中必须设置。用于系统资源的管理和分配。 例如:lldt、ltr 陷阱指令 例如:8086的int n,48,cisc 技 术和risc 技 术 代 表 着 目 前 计 算 机 指 令 系 统 的 两 个 截 然 不 同 的 优 化 方 向。,4.4 复杂指令系统计算机和 精简指令系统计算机,设 置 一 些 功 能 复 杂 的 指 令, 把 一 些 原 来 由 软 件 实 现 的、 常 用 的 功 能 改 用 硬 件 的 指 令 实 现, 以 提 高 计 算 机 的 执 行 速 度, 这 种 计 算 机 系 统 就 被 称 为 复 杂 指 令 系 统 计 算 机, 即complex instruction set computer, 简 称cisc。,49,尽 量 简 化 计 算 机 指 令 功 能, 只 保 留 那 些 功 能 简 单、 能 在 一 个 节 拍 内 执 行 完 成 的 指 令, 而 把 较 复 杂 的 功 能 用 一 段 子 程 序 来 实 现。通 过 简 化 计 算 机 指 令 功 能, 使 指 令 的 平 均 执 行 周 期 减 少, 从 而 提 高 计 算 机 的 工 作 主 频, 且 大 量 使 用 通 用 寄 存 器, 来 提 高 子 程 序 执 行 的 速 度。 这 种 计 算 机 系 统 被 称 为 精 简 指 令 系 统 计 算 机, 即reduced instruction set computer, 简 称risc。,50,1)risc发展,1975年,ibm开始研制ibm 801。801是最早开始设计的risc处理器,是powerpc的前身。 risc-i机、risc-ii机、 mips机研究成功。 risc-ii是sparc的前身 。 从20世纪80年代末至今,risc体系快速发展并伴随64位处理器的出现日趋完善。,risc技术开发思路起源于著名的“8020结论”,即约20的计算机指令完成约80的工作。,51,主流risc芯片主要有: powerpc(ibm) alpha(dec) hppa(hp) ultra sparc(sun) r10000(mips),52,2)risc的主要特征,选取使用频率高的简单指令。 指令长度固定,指令格式种类少,寻址方式种类少。 只有取数/存数指令访存,其余指令的操作都在寄存器间进行。 中通用寄存器数量相当多。 大部分指令在一个机器周期内完成。 以硬布线控制为主,不用或少用微程序控制。 采用高级语言编程,优化编译以减少程序执行的时间。,53,3)risc的优势,cpu执行程序所需时间 p= i*c*t i:机器指令数 c:每条机器指令的平均周期数 t:每个周期的执行时间 irisc icisc cisc程序中较复杂的指令在risc中用子程序完成 crisc ccisc risc大部分指令在一个周期内完成 trisc tcisc risc完成一个操作所经过的数据通路较短,54,4.5 指令系统举例,4.5.1 教学计算机tec-2指令系统 4.5.2 pentium指令系统 4.5.3 sparc指令系统,55,4.5.1 教学计算机tec-2指令系统,1)指令格式 (1)单字长指令(16位),高6位:操作码 ; 9、8位:条件码(c,z,v,s) 低8位:2个通用寄存器号(各4位)/ 相对转移位移量disp(-128+127)/ i/o端口地址(8位),56,(2)双字长指令(32位),57,2)指令分类 (1)指令中的符号说明 op操作码 dr/sr目的操作数寄存器/源操作数寄存器 sp堆栈指针寄存器 pc程序计数器 ippc增量前的值(当前指令的地址) cnd测试条件码,58,cnd测试条件码,59,(2)按指令的地址数目和指令功能分类,空操作 nop 开/关中断 ei/di 进位位置位复位 stc/clc 状态字入/出栈 pshf/popf 返回/中断返回 ret/iret 动态停机 halt 装入微指令代码 ldmc,零地址指令(11条),60,一地址指令(12条),无符号乘 mul sr ;r0(高位积),r1(低位积) (r1)*(sr) 无符号除 div sr ; r0(余数),r1(商) (r0)( r1)/(sr) 入栈 push dr ;sp(sp)-1 ,(sp) dr 出栈 pop dr ;dr (sp),sp(sp)+1,61,加1/减1 inc/dec dr ;dr (dr)+1/-1 求反 not dr ;dr/(dr) 逻辑左移/右移 shl/shr dr 算术右移 asr dr 与c循环左移/右移 rcl/rcr dr,62,二地址指令(17条),加/带进位加 add/adc dr,sr 减/带借位减 sub/sbb dr,sr 比较 cmp dr,sr ;(dr)-(sr),不送结果 与/或/异或 and/or/xor dr,sr 测试 test dr,sr ; (dr)&(sr),不送结果 传送 mov dr,sr/ sr mov dr,sr,63,传送 mov dr,data/adr mov adr,sr mov dr,offsetsr ;dr(offset+(sr) mov offsetsr,dr ;offset+(sr) (dr),64,例题:阅读下列源程序,指出其完成什么功能? mov r8,1111 ;被加数(高位) mov r9,2222 ;被加数(低位) mov r10,3333;加数(高位) mov r11,4444:加数(低位) add r9,r11 ;低位和 adc r8,r10 ;高位和 ret ;返回,65,i/o指令(2条),输入 in port ;r0 ( port) 输出 out port ;port (r0),66,转移指令(9条),无条件绝对转移 jp sr ;pc(sr) 条件绝对转移 jp cnd,sr ;条件满足(0或1)pc(sr), 否则 pc(ip)+1,67,无条件绝对转移 jp adr ;pcadr 条件绝对转移 jp cnd,adr ;条件满足(0或1)pcadr, 否则 pc(ip)+1,68,无条件相对转移 jr obj ;pc(ip)+位移量disp 条件相对转移 jr cnd,obj ;条件满足(0或1)pc(ip)+位移量disp, 否则 pc(ip)+1,69,例题:阅读下列源程序,指出其完成什么功能? mov r1,0 ;置累加器初值为0 mov r2,0a ;最大加数 mov r3,0 ;加数初值 obj: inc r3 ;加数 add r1,r3 ;累加 cmp r3,r2 ;判断是否累加完 jr nz,obj ret ;若完成,返回,70,子程序调用指令(2条),调用 call sr ;sp(sp)-1,(sp)(pc), pc(sr),调用 call adr ;sp(sp)-1,(sp)(pc), pcadr,71,4.5.2 pentium指令系统,1)程序员所能见到的寄存器 (1)通用寄存器 eax、ebx、ecx、edx esp、 ebp、 esi、edi (2)6个16位的段寄存器 cs、ss、ds、es、fs、gs (3)指令指针和标志寄存器 eip、eflags(32位),72,2)pentium在实模式下32位地址的形成,段寄存器(cs、ds、es、fs、gs、ss),基址寄存器(eax、ebx、ecx、edx、esp、ebp、esi、edi),变址寄存器(eax、ebx、ecx、edx、ebp、esi、edi),放大因子1/2/4/8,位移量disp(0/8/32),16,73,3) pentium的指令格式,指令由:0到4个可选指令前缀、1或2字节的操作码、一个可选的地址指示器、一个可选的位移量、一个可选的立即数字段组成。 (1)前缀,74,(2)指令,75,4.5.3 sparc指令系统,1)指令类型 (1)算术运算/逻辑运算/移位指令 (2)load/store指令 (3)控制转移指令 (4)读/写专用寄存器指令 (5)浮点运算指令 (6)协处理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑机接口情绪调控策略-洞察及研究
- 渔业政策效果评价-洞察及研究
- 油墨厂耐戊苯试验细则
- 手抄报课件设置
- 四川省成都市浦江县2025-2026学年高一上学期第一次月考历史试题(含答案)
- 河南省郑州市新郑市2024-2025学年四年级下学期期末英语试题(含答案无听力原文无听力音频)
- 广西河池市2024-2025学年九年级上学期第一次月考化学试题(无答案)
- 手影变变变课件
- 印刷厂售后服务处理办法
- 学生自身安全培训计划课件
- 心血管内科常见疾病诊疗常规
- 颅脑损伤营养支持
- 深基坑边坡稳定性计算书
- Q∕SY 06327-2020 二氧化碳驱油气田集输管道施工技术规范
- 译林版六年级英语上册 Unit 3 第2课时 教学课件PPT小学公开课
- 中国电影的发展史
- 电镀时间与理论厚的计算方法
- Word操作练习题
- 药用高分子材料学(78)
- 公路桥梁技术状况评定分值计算EXCEL表格(梁桥-拱桥)
- ISO 1110-95 尼龙-测试样品的加速调节
评论
0/150
提交评论