计算机组成原理-指令系统

本文深入探讨了计算机指令系统的基本概念,解释了指令由操作码和地址码组成,详细阐述了操作码和地址码的作用,以及指令字长、操作数类型、操作类型和指令寻址方式等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机能解题是由于机器本身存在一种语言,它能理解人的意图,又能被机器自身识别。机器是由一条条语句构成的,每一条语句又能准确表达某种语义。计算机就是连续执行每一条机器语句而实现全自动工作的。

人们习惯把每一条机器语言的语句成为机器指令,而又将全部机器指令的集合称为机器的指令系统。因此机器的指令系统集中反映了机器的功能。

计算机设计者主要研究如何确定机器的指令系统,如何用硬件电路、芯片、设备来实现机器指令系统的功能。计算机的使用者则是依据机器提供的指令系统,使用汇编语言来编制各种程序。计算机使用者根据机器指令系统所描述的机器功能,能清楚的了解计算机内部寄存器-存储器的结构,以及计算机能直接支持的各种数据类型。


指令的一般格式

指令是由操作码和地址码两部分组成的。

操作码地址码
  • 操作码用来指明所要完成的操作。
  • 地址码用来指出该指令的源操作数的地址(一个或两个)、结果的地址以及下一条指令的地址。
  • 指令字长取决于操作码的长度、操作数地址的长度和操作数地址的个数。
操作数类型
地址、数字、字符、逻辑数据
操作类型
不同的机器,操作类型也是不同的,但几乎所有的机器都有以下几类通用的操作。
  • 数据传送 包括寄存器与寄存器、寄存器与存储单元、存储单元 与存储单元之间的传送。如对存储器读和写、进栈、出栈等。
  • 算术逻辑操作 可实现算术操作(加、减、乘、除、增1、减1、 取负数即求补)和逻辑运算(与、或、非、异或)。
  • 移位 移位可分为算术移位、逻辑移位和循环移位。算术移位和 逻辑移位分别可实现对有符号数和无符号数乘以2n(左移)或整 除2n(右移)的运算,并且移位操作所需时间远比乘除操纵执行 时间短,因此,移位操作经常被用来代替简单的乘法和除法运算。
  • 转移 在多数情况下,计算机是按顺序执行程序的每条指令的, 但有时需要改变这种顺序,此刻可采用转移类指令来完成。转移指 令按其转移特征又可分为无条件转移、条件转移、跳转、过程调用 与返回、陷阱等几种。

    • 无条件转移 不受任何条件的约束,可直接把程序转移到下一条需执行指令的地址。
    • 条件转移 根据当前指令的执行结果来决定是否需要转移。若条件满足,则转移;若条件不满足,则继续按顺序执行。
    • 调用与返回 在编写程序时,有些具有特定功能的程序段会被反复使用。为避免重复编写,可将这些程序段设定为独立子程序,当需要执行某子程序时,只需要子程序调用指令即可。
寻址方式
确定本条指令的数据地址以及下一条将要执行的指令地址的方法。分为指令寻址和数据寻址两大类。
  • 指令寻址分为顺序寻址和跳跃寻址。
    • 顺序寻址 通过程序计数器PC加1,自动形成下一条指令的地址
    • 跳跃寻址 则通过转移类指令实现。
  • 数据寻址方式种类较多,在指令中必须设一字段来指明属于哪一种寻 址方式。指令的地址码字段通常都不代表操作数的真实地址,把它称 为形式地址,记作A。操作数的真实地址称为有效地址 ,记作EA,它是由寻址方式和形式地址共同来确定的。

    操作码寻址特征形式地址A

    • 立即寻址 形式地址A不是操作数的地址,而是操作数本身。优点在 于只要取出指令,便可立即获得操作数,在执行阶段不必再访问存 储器。但A的位数限制了这类指令所能表述的立即数的范围。
      立即寻址

    • 直接寻址 形式地址A就是操作数的真实地址EA。优点是寻找操作数比较简单,也不需要专门计算操作数的地址,在指令执行阶段对主存只访问一次。缺点在于A的位数限制了操作数的寻址范围,而且必须修改A的值,才能修改操作数的地址。
      直接寻址

    • 间接寻址 指令字中的形式地址不直接指出操作数的地址,而是指出操作数有效地址所在的存储单元地址,也就是说,有效地址是由形式地址简介提供的。
      间接寻址

    这种寻址方式与直接寻址相比,它扩大了操作数的寻址范围,因为A的位数通常小于指令字长,而存储字长可与指令字长相等。若设指令字长与存储字长均为16位,A为8位,显然直接寻址范围为28,一次间接寻址的寻址范围可达216。
    第二个优点在于它便于编程,例如,用间接寻址可以很方便地完成子程序返回

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值