《指令系统和汇编语言程序【精】》由会员分享,可在线阅读,更多相关《指令系统和汇编语言程序【精】(108页珍藏版)》请在金锄头文库上搜索。
1、第4章 指令、指令系统 和控制器部件第4章 指令、指令系统和控制器部件一、指令系统 综述:指令与指令格式 ,寻址方式。 基本指令系统:教学计算机的指令系统 和 汇编程序设 计。 扩充性知识:PDP-11机指令系统,NOVA机指令系统。 二、控制器的功能和组成控制器的功能,控制器的组成,指令的执行步骤。控制器的分类:微程序控制器和组合逻辑控制器。 三、微程序控制器的运行原理微指令的格式:下地址字段 和 控制命令字段。 四、教学计算机的微程序控制器指令分类与典型指令的执行过程, 微程序分析,设计新指令的微程序及调试运行。 五、组合逻辑控制器的组成与运行原理8 位教学实验计算机的组成与设计实例。返回
2、一、指令系统指令 : 功能 定义 用法指令格式: 操作码 操作数地址固定长度 可变长度 交叉安排无地址 一地址 二地址 多地址2. 寻址方式 外设寻址入 / 出端口地址方式统一映象方式主存寻址 寄存器寻址直接寻址 变址寻址 寄存器间址间接寻址相对寻址基地址寻址立即数寻址堆栈寻址1.指令与指令格式返回指令:是计算机运行的最小的功能单位,是计算机用于控制各部件协调动作的命令,计算机最本质的功能就是连续的执行指令。指令系统:一台计算机支持(或使用)的全部指令的集合,称为指令系统。指令字:一种二进制代码,包括操作码和操作数地址。操作码:用于指明本条指令的操作功能。如:算数的加/减,逻辑的与/或,内存与
3、外设的读/写等。操作数地址:用于给出被操作的对象的地址。如:操作数所在的地址,程序转移地址,子程序调用地址等。返回1、指令的基本概念对指令系统的要求完备性: 指令齐全,编程方便 高效性:占内存少,运行省时 规整性:指令与运算规则统一 兼容性:新旧机指令软件兼容当前的计算机指令系统,从其构成的复杂和完备程度, 或者说设计中追求的不同的目标,区分,可分为 CISC 和 RISC 两类:RISC(Reduced Instruction Set Computer),通常称为 精简指令系统的计算机,只有数目较少、格式与功能简单、 运行高效的指令,追求的是计算机控制器实现简单,运行高 速,更容易在单块超大
4、规模集成电路中芯片内制做出来。CISC (Complex Instruction Set Computer),通常称 为复杂指令系统的计算机,是相对于 RISC 一词而提出来的 一种说法。其特点是:指令条数多,格式多样,寻址方式复 杂,每条指令的功能强,优点是汇编程序设计容易些,但计 算机控制器的实现困难多,很多指令被使用的机会并不多。返回指令格式: 操作码 操作数地址 返回操作码的方案分类:1、定长操作码方案:在指令字的最高位分配固定长度,用于表示操作码。2、变长操作码方案:可以为最常用的指令少分配几位操作码。3、交叉方案:操作码的二进制位不集中在最高位,而是与操作数地址有所交叉。操作数地址
5、的设计:1、无操作数指令:某些指令没有操作数,或使用某个已约定的操作数。如停机指令、空操作指令、关中断指令等。2、单操作数指令:某些指令只用一个操作数必须在指令中指明其地址。3、双操作数指令:如算数和逻辑运算,往往使用2个操作数,需要分别给出目的操作数和源操作数的地址。4、多操作数指令:如用2个操作数地址表示目的和源操作数,用第三个操作数地址表示保存运算结果。2、指令的分类指令的分类1、算数和逻辑运算指令:是每台计算机必须具有的指令。2、移位操作指令:包括算数移位、逻辑移位和循环移位三种。3、数据传送指令:用于通存通存、通存内存、通存外设、内存内存之间的数据传送。指令要指明数据传送的方向。4、
6、转移指令、子程序调用与返回指令:转移指令:不执行邻接的下1条指令,而是转移到另一段程序的入口 去执行。分为条件转移和无条件转移。条件转移指令还必须给出判断转移条 件,通常是 C(进位)、Z(结果为0)、V(溢出)、S(符号位)的取值。子程序调用与返回指令:是一种特定的转移指令。即转去执行子程 序,在子程序的最后要有返回当前指令的语句。用户自编的子程序系统提供的子程序子程序访问系统程序(访管)指令 。陷阱指令(TPAP)。断电、检验出错、设备故障、非法指令等意外事故 。5、特权指令:仅用于操作系统或系统软件的指令。为确保安全,这类指令不提供给用户使用。6、其它指令:用于完成某些特定的处理功能。如
7、:动态停机、空操作、置条件码、开中断、关中断、堆栈操作指令等。 操作数的来源和去向:1、来自CPU内部的通用寄存器。通存一般有16个,R0 R15R0与外设交换数据,R4 为堆栈,R5 用作程序计数器PC。2、来自外围设备(接口)中的一个寄存器。通常用设备编号入口端地址来表示。3、来自内存的一个存储单元。在指令字中给出该存储单元的地址。3、寻址方式寻址:根据指令的内容确定操作数地址的过程。 寻址方式:获得操作数或操作数地址的方法。地址:数据和指令在存储器中存放的位置。形式地址:在指令字中给出的操作数的地址被称为形式地址。物理地址:用形式地址结合某些规则计算出操作数在存储器中的存储单元地址。操作
8、数地址可以是: 运算器中的累加器的编号或专用寄存器名称(编号) 。 输入/输出指令中用到的 I/O 设备的入出端口地址。 内存储器的一个存储单元(或一 I/O设备 )的地址。 返回计算机的CPU中一般设置有一定数量的通用寄存器,用于存 放操作数、操作数地址或中间结果。寄存器寻址: 在指令字的操作数地址码字段给出操作数所在的通用寄存器 的编号(地址)。称为寄存器寻址。例如:加法指令: ADD A, D(助记符号)指令字 : 10 0 0 0 010寄存器间接寻址:右图中,如果D寄存器中给出的不是操作数,而是操作数的地址,这中方式称为寄存器间接寻址。1、寄存器寻址、寄存器间接寻址返回寄存器 D 的
9、地址2、立即数寻址 所需的一个操作数在指令的地址码部分直接给出。则 Num 即为操作数的值。适用于操作数固定的情况,提高了指令的执行速度,当该立即数的值限定为较小值(占用位数少)时,可在 第一个指令字中直接给出,否则可在第二个指令字中给出。返回在指令的地址码字段直接给出所需的操作数(或指令)在存储器中的地址。则 Addr 为操作数在存储器中的地址。或转移指令等用到的指令地址。3、直接寻址 例:Addr = 5718H ,这里的H 表示 5718 是 16 进制的值5718H = 3,内存储器 5718 单元中的内容为 3,则操作数就是这里的 3,或下一条指令的地址为 3。常用于读写内存的指令或
10、转移等指令中。内存储器操作数 返回操作数的地址由指定的变址寄存器(由Reg指定)的 内容和指令中的地址码(Disp)相加得到。4、变址寻址 通用寄存器加法器存储器操作数例:Disp=H18,Reg=5,(R5)=H5700则操作数地址 = H5718便于对数组元素进行处理,是计算机中常用的一种寻址方式。返回操作数(或指令)的地址由程序计数器 PC 的内容( 即当前执行指令的地址)和指令的地址码相加得到。5、相对寻址 例:Disp = H48(PC) = H5600则实际地址 = H56481主要用于转移指令,对浮动程序很有用。2位移量可正可负,通常用补码表示。返回指令的地址码字段给出的内容既不
11、是操作数,也不 是操作数的地址,而是操作数(或指令)地址的地址, 这被称为间接寻址方式,多一次读内存储器的操作。6、间接寻址 存储器操作数Addr1指令中的 Addr 可以用其他寻址方式 给出,例如变址寻址,这就成为变址 寻址与间接寻址的复合寻址方式。返回在计算机中设置一个专用的基址寄存器,操作数(或 指令)的地址通过基址寄存器的内容和指令中的地址码相 加得到。7、基址寻址 基址寄存器加法器存储器操作数例:Disp= H18,BS= H5700则操作数地址=H5718主要用于为程序或数据分配存储区,对多 道程序或浮动程序很有用,解决了程序在 存储器中的定位和扩大寻址空间等问题。返回堆栈是内存储
12、器中一块按 “ 后进先出 ” 原则进 行读写的存储区,并通过一个专用的寄存器(称为堆栈 指针SP)给出堆栈的栈顶地址完成数据的读写操作,故 不必在指令中用操作数地址字段给堆栈地址。通常在读 写操作的前后伴随有计算机自动(不是用户通过指令) 修改 SP 内容的动作,以确保按正确的“后进先出”原 则读写堆栈区。例如:(SP)- 1 SP和 AR,即SP的内容减 1 存回 SP,并送内存地址寄存器,接下来才可以把数据 写到堆栈中。完成一次读堆栈操作后,要接着执行(SP )+1 SP 的一次自动修改 SP 内容的操作。8、堆栈寻址 需要注意的是,指令长度可能是一个字,也 可能是两个字或多个字,要看操作
13、数地址字段的 位数要求,由具体的情况决定。返回4、16位教学机的指令格式16位机指令支持单字和双字指令,第一个指令字的高8位是 指令操作码字段,低8位和第二个指令字是操作数地址字段。教学机高8位指令操作码(IRH7 IRH0)的含义:教学机指令中,基本指令29条,扩展指令19条。CZVS标志位: *号表示状态位在该指令执行后会被重置, 表示不被重置。16位机基本指令说明: (一)16位机基本指令说明: (二)5、汇编语言简介(1)、语句的种类 :指令语句伪指令语句有与其对应的机器指令。 没有与其对应的机器指令,只说明如 何汇编源程序,包括符号的定义,变 量和段的定义等。(2)、指令语句的格式:
14、(由4个部分组成) 标号: 指令助记符 操作数 ,操作数 ;注释 常数操作数(数值表达式), 寄存器操作数(寄存器名), 存储器操作数(地址表达式) 。(3)、数值表达式:(1).常数:二进制数B、八进制数Q、十进制数D、十六进制数H、字符串常数,“定界符”。(2).算数运算符,包括:正()、负()、加( )、减()、乘( * )、除(/)(3).关系运算符:相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)、大于等于(GE)(4).逻辑运算符:与(AND)、或(OR)、非(NOT)、异或(XOR)(5).运算符的优先级:1各种扩号、2 * / SHL . SHR、3 H
15、IGH . LOW 、4 、5 关系运算6 NOT、7 AND、8 OR . XOR 。指令系统实验联机的汇编语言 程序设计实验目的:1、学习TEC2000教学机监控命令的用法。2、学习TEC2000教学机的指令系统。3、学习TEC2000教学机的汇编程序设计。实验内容:1、使用监控程序的R命令显示/修改寄存器的内容, 使用D命令显示存储器的内容,使用E命令修改存储 器内容。2、使用A命令编写一段小程序,用G命令运行该程序 。3、参照教材135页例1例3, 138页例1例5, 作3个汇 编程序的实验。联机的汇编程序设计实验步骤1、把教学机COM1口与PC机的COM1口相连,置教学机控制 方式选
16、择开关为00101(连续、读内存、组合逻辑、16位 、联机),开关拨向上方表示 “1”,拨向下方表示 “0”,“X”表示任意。2、PC机和教学机加电,使PC机进入Win98系统,找到 C:TECPCEC16文件,双击进入仿真界面,当屏幕出现菜 单显示时按“1”键(选COM1口)。教学计算机软件子系统组成:软件子系统提供监控程序、汇编程序、双机通信及仿真终端等软件,该软件存储在一张软盘上,安装之后,在C盘 上有一个文件夹TEC,该文件夹下有一个文件 pcec16.exe,双击该文件即可进入仿真终端状态。3、按一下“RESET”按键复位,再按一下“START”按键开始,PC机屏幕上显示:TEC2000 CRT MONITONVersion 2.0 2001.10Computer Archi