- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
指令系统.ppt
第六章 指令系统 6.1 指令格式 一、指令操作码与地址码 指令是由操作码和地址码两部分组成的: 一、指令操作码与地址码 1、操作码 操作码长度固定:将操作码集中放在指令字的一个字段内。 这种格式便于硬件设计,指令译码时间短,广泛应用于字长较长的、大中型计算机和超级小型计算机以及RISC(Reduced Instruction Set Computer)中。如IBM370和VAX-11系列机,操作码长度均为8位。 操作码长度不固定:指令操作码分散在指令字的不同字段中。 这种格式可有效地压缩操作码的平均长度,在字长较短的微机中被广泛采用。如PDP-11,Intel8086/80386等。 2、地址码 (1)三地址指令: (A1)OP(A2)→A3 2、按照地址码分类 (4)零地址指令 不涉及操作数:如NOP、HLT指令 操作数隐含:如PUSH、POP指令 对于寄存器类型的操作数,地址A指寄存器编号。 3、操作数类型 按照指令处理的操作数存放位置分: 存储器类型:操作数存放在主存中,A为其地址信息 寄存器类型:操作数存放在CPU的通用寄存器中,A为寄存器号 立即数类型:操作数存放在指令(地址字段)中 按照指令处理的操作数性质分: 地址(addresses):存储器地址,是无符号整数。 数字(numbers):整数、浮点数、十进制数。 字符(characters) 逻辑数据:真假两种状态 二、指令字长和操作码扩展 1、指令字长度 机器指令是用二进制机器字来表示的,表示一条指令的机器字,就称为指令字。一条指令中所包含的二进制码的位数,称为指令字长度或指令字长。它主要取决于操作码的长度、操作数地址的长度和操作数地址的个数。不同机器的指令字长是不相同的。 按指令长度固定与否可以分为: 固定指令字长的指令:所有指令的字长均相等,一般等于机器字长。 可变指令字长的指令:指令字长不固定,通常取字节的整数倍。 1、指令字长度 按照指令字长与机器字长的关系分类: 短格式指令:指令字长小于或等于机器字长。 长格式指令:指令字长大于机器字长。 一个机器的指令系统中,短格式指令和长格式指令可以并存,通常将最常用的指令设计成短格式指令,可以节省存储空间、提高指令的执行速度。 2、指令操作码扩展 固定操作码长度的格式和可变操作码长度格式 在设计操作码不固定的指令系统时,应安排指令使用频度高的指令占用短的操作码,对使用频度低的指令可占用较长的操作码,这样可以缩短经常使用的指令的译码时间。 采用扩展操作码技术,使操作码的长度随地址数的减少而增加,即不同地址数的指令可以具有不同长度的操作码,从而可以有效地缩短指令字长。指令操作码扩展技术是一种重要的指令优化技术,它可以缩短指令的平均长度,增加指令字所能表示的操作信息。但指令操作码扩展技术需要更多的硬件支持,它的指令译码更加复杂,使控制器设计难度增大。 举例 6.2 寻址方式 一、指令寻址 1、顺序寻址方式 控制器中使用程序计数器PC来指示指令在内存中的地址。在程序顺序执行时,指令的地址码由PC自加1得出。 指令在内存中按顺序存放,当顺序执行一段程序时,根据PC从存储器取出当前指令, PC自动+1,然后执行这条指令;接着又根据PC指示从存储器取出下一条指令, PC自动+1, 执行……。 2、跳跃寻址方式 当程序执行转移指令时,程序不再顺序执行,而是跳转到另一个地址去执行,此时,由该条转移指令的地址码字段可以得到新指令地址,然后将其置入PC中。 二、数据寻址 指令的地址码字段,通常都不代表操作数的真实地址,把它称作形式地址,记为A。操作数的真实地址称为有效地址,记作EA,它是由寻址方式和形式地址共同来确定的。 二、数据寻址 1、立即寻址(Immediate Addressing) 操作数在指令的地址码字段,即: DATA=A 例如: MOV AL, 5 MOV AX, 3064H MOV AL, ‘A’ 2.直接寻址(Direct Addressing) 操作数位于存储器中,操作数所在的存储器单元的地址存放在指令的地址字段A中,即: DATA=(EA) EA=A 3、间接寻址( Indirect Addressing ) 操作数位于存储器中,操作数所在的存储器单元地址也存放在存储器中,该存储器地址则存放在指令的地址字段中,即: DATA=(EA) EA=(A) 即:A为操作数地址的地址 4、寄存器寻址方式 ( Register Addressing ) 操作数位于寄存器中,操作数所在的寄存器编号存放在指令的地址字段A中,即: DATA=(Ri) MOV AX, BX MOV AL, BH 5、寄存器间接寻址方式 操作数位于存储器中,操作数所在的存储器地址存放在寄存器中,而该寄存器编号存放在指令的地址字
文档评论(0)