在计算机科学中,一个指令字(或一条指令)一般由两部分组成:一部分用来指明该指令所需完成的操作,这是必不可少的部分,通常被称为操作码部分;另一部分用来指明需进行某种操作的数据(包括输入数据、操作数变量以及所产生结果)来自何处和将被送往何处,这一部分被称为操作致地址码部分。它不一定是必需的。[1]

多地址指令是指指令有3个以上的操作数地址,指令码长。如字符串处理指令、向量、矩阵运算指令等。

中文名

多地址指令

外文名

Multiaddress Instruction

学    科

计算机科学定    义

多于3个操作数地址

应    用

字符串处理、向量、矩阵运算

目    的

数据批处理

多地址指令概述

编辑

语音

计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。通常一条指令包括两方面的内容:操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。

多地址指令是指指令有3个以上的操作数地址,指令码长。在某些性能较好的大、中型机及高档小型机中采用,往往设置一下功能很强的,用于处理成批数据的指令,如字符串处理指令、向量、矩阵运算指令等。为了描述一批数据,指令中需要多个地址来指出数据存放的首地址、长度和下表等信息。[2]

多地址指令指令系统

编辑

语音

指令系统是计算机硬件的语言系统,也叫机器语言,指机器所具有的全部指令的集合,它是软件和硬件的主要界面,反映了计算机所拥有的基本功能。它描述了计算机内全部的控制信息和“逻辑判断”能力。不同计算机的指令系统包含的指令种类和数目也不同。一般均包含算术运算型、逻辑运算型、数据传送型、判定和控制型、移位操作型、位(位串)操作型、输入和输出型等指令。指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围。从系统结构的角度看,它是系统程序员看到的计算机的主要属性。因此指令系统表征了计算机的基本功能决定了机器所要求的能力,也决定了指令的格式和机器的结构。设计指令系统就是要选择计算机系统中的一些基本操作( 包括操作系统和高级语言中的) 应由硬件实现还是由软件实现,选择某些复杂操作是由一条专用的指令实现, 还是由一串基本指令实现, 然后具体确定指令系统的指令格式、类型、操作以及对操作数的访问方式。

多地址指令性能要求

指令系统的性能决定了计算机的基本功能,它的设计直接关系到计算机的硬件结构和用户的需要。一个完善的指令系统应满足如下四方面的要求:

完备性

指用汇编语言编写各种程序时,指令系统直接提供的指令足够使用,而不必用软件来实现。完备性要求指令系统丰富、功能齐全、使用方便。

有效性

是指利用该指令系统所编写的程序能够高效率地运行。高效率主要表现在程序占据存储空间小、执行速度快。

规整性

包括指令系统的对称性、匀齐性、指令格式和数据格式的一致性。对称性是指:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式;匀齐性是指:一种操作性质的指令可以支持各种数据类型;指令格式和数据格式的一致性是指:指令长度和数据长度有一定的关系,以方便处理和存取。

兼容性

至少要能做到“向上兼容”,即低档机上运行的软件可以在高档机上运行。

多地址指令寻址方式

根据指令内容确定操作数地址的过程称为寻址。完善的寻址方式可为用户组织和使用数据提供方便。

①直接寻址:指令地址域中表示的是操作数地址。

②间接寻址:指令地址域中表示的是操作数地址的地址即指令地址码对应的存储单元所给出的是地址A,操作数据存放在地址A指示的主存单元内。有的计算机的指令可以多次间接寻址,如A指示的主存单元内存放的是另一地址B,而操作数据存放在B指示的主存单元内,称为多重间接寻址。

③立即寻址:指令地址域中表示的是操作数本身。

④变址寻址:指令地址域中表示的是变址寄存器号i和位移值D。将指定的变址寄存器内容E与位移值D相加,其和E+D为操作数地址。许多计算机具有双变址功能,即将两个变址寄存器内容与位移值相加,得操作数地址。变址寻址有利于数组操作和程序共用。同时,位移值长度可短于地址长度,因而指令长度可以缩短。

⑤相对寻址:指令地址域中表示的是位移值D。程序计数器内容(即本条指令的地址)K与位移值D相加,得操作数地址K+D。当程序在主存储器浮动时,相对寻址能保持原有程序功能。 此外,还有自增寻址、自减寻址、组合寻址等寻址方式。寻址方式可由操作码确定,也可在地址域中设标志,指明寻址方式。

多地址指令指令执行步骤

编辑

语音

一条指令的执行过程按时间顺序可分为以下几个步骤。

① CPU发出指令地址。将指令指针寄存器(IP)的内容——指令地址,经地址总线送入存储器的地址寄存器中。

② 从地址寄存器中读取指令。将读出的指令暂存于存储器的数据寄存器中。

③ 将指令送往指令寄存器。将指令从数据寄存器中取出,经数据总线送入控制器的指令寄存器中。

④ 指令译码。指令寄存器中的操作码部分送指令译码器,经译码器分析产生相应的操作控制信号,送往各个执行部件。

⑤ 按指令操作码执行。

⑥ 修改程序计数器的值,形成下一条要取指令的地址。若执行的是非转移指令,即顺序执行,则指令指针寄存器的内容加1,形成下一条要取指令的地址。指令指针寄存器也称为程序计数器。

多地址指令其它指令格式

编辑

语音

①三地址指令:一般地址域中A1、A2分别确定第一、第二操作数地址,A3确定结果地址。下一条指令的地址通常由程序计数器按顺序给出。

②二地址指令:地址域中A1确定第一操作数地址,A2同时确定第二操作数地址和结果地址。

③单地址指令:地址域中A 确定第一操作数地址。固定使用某个寄存器存放第二操作数和操作结果。因而在指令中隐含了它们的地址。

④零地址指令:在堆栈型计算机中,操作数一般存放在下推堆栈顶的两个单元中,结果又放入栈顶,地址均被隐含,因而大多数指令只有操作码而没有地址域。

上面这些指令具有短、执行速度快,硬件实现简单等特点,多为结构简单、字长较短的小型机、微型机采用。

参考资料

1.

陆鑫达,翁楚良.计算机系统结构:高等教育出版社,2008

2.

李俊杰,王丽新.计算机组成原理复习指南与题解:清华大学出版社,2005

计算机通常使用什么指令的地址,多地址指令相关推荐

  1. 【计算机组织与体系结构】实验四:指令 CACHE 的设计与实现

    系列文章目录 [计算机组织与体系结构]实验一:算术逻辑单元的实现 [计算机组织与体系结构]实验二:给定指令系统的处理器设计 [计算机组织与体系结构]实验三:流水线处理器 [计算机组织与体系结构]实验四 ...

  2. 计算机正在执行的指令在,在计算机中,保存当前正在执行的指令的寄存器为(1),存放当前指令地址的寄存器叫(2)。在顺序执行指令_快考试...

    (单选题) 在计算机中,保存当前正在执行的指令的寄存器为(1),存放当前指令地址的寄存器叫(2).在顺序执行指令的情况下(存储器按字节编址,指令字长32位),每执行一条指令,使程序计数器自动加(3). ...

  3. 计算机的指令系统、控制器、运算器以及指令执行的过程

    目录 一.计算机的指令系统 1.机器指令的形式 2.机器指令的操作形式: 3.机器指令的寻址方式: 二.计算机的控制器 三.计算机的运算器 四.计算机指令执行的过程 一.计算机的指令系统 1.机器指令 ...

  4. 转移的目的地址在指令中的jmp指令 转移地址在寄存器中的jmp指令

    机器码中并没有包含转移的目的地址,只是给了一个位移的范围,通过位移的方式,实现对ip寄存器的修改. 转移的目的地址在机器码中的jmp指令 jmp far ptr s 转移的目的地址在寄存器中的jmp指 ...

  5. 控制寄存器:指令指针寄存器IP:存放下一条指令的地址的偏移量,标志寄存器FR(16):

    指令指针寄存器IP:存放下一条指令的地址的偏移量 (下一条指令的地址,CS给出段基值+ip偏移地址,20位的物理地址) 标志寄存器FR:存放当前程序执行的状态,相加以后结果为0,溢出,符号位为正为负等 ...

  6. Linux调整网卡MAC地址(指令)

    Linux调整网卡MAC地址(指令) 有的时候需要使用欺骗的方法为电脑设置新的mac,比如存在上网网卡限制,或者想要隐藏自己的真实mac地址.这里列举三种修改mac的方法,适用于Debian系的Lin ...

  7. 多台计算机共享内存_共享内存多处理器和指令执行| 计算机架构

    多台计算机共享内存 共享内存多处理器 (Shared Memory Multiprocessor) There are three types of shared memory multiproces ...

  8. 计算机的网络ip相同,同一Wi-Fi网络上的两台计算机是否具有相同的IP地址? | MOS86...

    当你刚刚开始了解网络和IP地址的工作原理时,这似乎有点压倒一切,但是通过一点点的学习,你可以了解它们是如何组合在一起的.今天 今天的问题 Screenshot由Linux屏幕截图(Flickr)提供. ...

  9. delphi7 获取计算机名,Delphi中根据IP地址得到主机名

    下载本文示例代码 本实例演示如何利用TUdpSocket组件获取IP地址和主机名. 向窗体上添加一个TUdpSocket组件,如图1所示. 图1 主界面 TUdpSocket组件中有两个属性--Loc ...

最新文章

  1. jQuery之父强烈推荐之jQuery实战
  2. shell 脚本实战笔记(9)--linux自动批量添加用户
  3. 实时动态测量技术的不足与改进方法
  4. 半波对称振子方向图_移动天线的概念 | 天线方向性
  5. python设计模式六大原则_学习设计模式 - 六大基本原则之迪米特法则(示例代码)...
  6. 面向对象设计——七大原则
  7. 事务的传播行为和隔离级别?
  8. android列表的默认值,ListPreference默认值没有显示
  9. dubbo 学习资料
  10. 完整详尽的解决MySql:Could not create connection to database server
  11. 【1】PASCAL VOC数据集下载
  12. 20210706_IEEEDataPort免费订阅
  13. Python学习笔记—— 面向对象1. 面向对象基础
  14. ESP8266-Arduino编程实例-MPL3115A2压力传感器驱动
  15. 切蛋糕java题,【算法•日更•第六期】头脑风暴:洛谷P1528 切蛋糕题解
  16. 大屏数据可视化 B端UI设计后台PC网页UI设计U3D+可视化落地教程
  17. 十三、java类的封装、继承、多态
  18. 由浅入深 学习 Android Binder(一)- AIDL
  19. Linux下文件的备份
  20. 要想数组用的 6,怎能不懂 java.util.Arrays

热门文章

  1. 长连接,短连接,心跳
  2. GPT-4发布!ChatGPT大升级!
  3. @Autowire的正确使用
  4. mybatis3.2.7(3.*同适用)框架mybatis-config.xml和实现类配置文件模板
  5. win10如何开启远程桌面连接
  6. win10怎么用计算机名远程,win10远程桌面连接设置教程_win10如何远程桌面连接
  7. Mysql中查询语句的执行顺序
  8. 哨兵二号波段介绍_教程:envi5.3裁剪哨兵(Sentinel-2)遥感数据
  9. oracle查询重复保留一条-删除,Oracle查询重复数据并删除,只保留一条记录
  10. 关于更改 DNS_PROBE_FINISHED_NXDOMAIN 错误,以及 DNS