第一章 计算机硬件基础(指令格式)

2024-03-14 21:12

本文主要是介绍第一章 计算机硬件基础(指令格式),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

指令

1、定义

指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。

2、指令格式

指令就是机器语言的一个语句,它是一组有意义的二进制代码。通常包括操作码字段和地址码字段。

操作码:用来表示该指令所要完成的操作(如加、减、乘、除等)。其长度取决于指令系统中的指令条数。

地址码:用来描述该指令的操作对象,或者直接给出操作数,或者指出操作数的存储器地址或寄存器地址(即寄存器名)。

OPA1A2(结果)A3(下址)

指令含义:A1(OP)A2—>A3          A4=下一条指令将要执行的地址

3、指令--操作码

操作码指出指令中该指令应该执行什么性质的操作和具有何种功能。
操作码分类:

(1)定长操作码:在指令字的最高位部分分配固定的若干位(定长)表示操作码。

  • 优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;
  • 缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。

(2)扩展操作码(不定长操作码):部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。

  • 优:在指令字长有限的前提下仍保持比较丰富的指令种类;
  • 缺:增加了指令译码和分析的难度,使控制器的设计复杂化。

设计扩展操作码的注意事项:

  • 不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。
  • 各指令的操作码一定不能重复。

操作分类

(1)数据传送(进行主存与CPU之间的数据传送)

LOAD           作用:把存储器(源)中的数据放到寄存器(目的)中

STORE         作用:把寄存器(源)中的数据放到存储器(目的)中

(2)算术逻辑操作

算数:加、减、乘、除、增1、减1、求补、浮点运算、十进制运算

逻辑:与、或、非、异或、位操作、未测试、位清除、位求反

(3)移位操作

算术移位、逻辑移位、循环移位(带进位和不带进位)

(4)转移操作

无条件转移      JMP

条件转移         JZ:结果为0        JO:结果溢出           JC:结果有进位

调用和返回      CALL和RETURE

陷阱(Trap)与陷阱指令

(5)输入输出操作(进行CPU和I/O设备之间的数据传送)

CPU寄存器与IO端口之间的数据传送(端口即IO接口中的寄存器)

指令--地址码

地址码的作用:

指出操作码的地址、给出结果存放的地址、下一条指令的地址。(以上地址可以是主存地址、寄存器地址、I/O地址)

地址码可以是操作数本身、操作数地址或者操作数地址的计算方法。

地址码的分类:

(1)四地址指令

OPA1A2A3(结果)A4(下址)

OP:操作码;

A1,A2:第一操作数和第二操作数;

A3:存放运算结果的地址;

A4:下一条指令的地址

执行四地址指令需要访问4次存储器(取指令一次,取操作数两次,存放结果一次)

缺点:占用存储空间

设指令字长为32位,操作码占8位,4个地址字段各占6位,则指令操作数的直接寻址范围为2^6=64

(2)三地址指令

OPA1A2A3(结果)

OP:操作码;

A1,A2:第一操作数和第二操作数;

A3:存放运算结果的地址;

因为有了“程序计数器”,可以省略下一个指令地址存放空间。3个地址各占8位(32-8 = 24,24/3 =8),指令操作数直接寻址范围为2^8=256,完成一条指令需要访存次数还是4次(取指令,取A1,取A2,结果存回A3)

(3)二地址指令

OPA1A2

OP:操作码;

A1、A2:其中一个作为操作数的地址,另一个既作为操作数的地址,又用于存放本次运算结果的地址。

下一条指令的地址存放在程序计数器中。

设指令字长为32位,操作码占8位,2个地址字段各占12位,则指令操作数的直接寻址范围为2^12=4K,完成一条指令需要访存次数4次(取指令,取A1,取A2,结果存放到A1或者A2)

注意:如果将结果存放到寄存器中,则需要访存次数3次。

(4)一地址指令

OPA1

OP:操作数

一地址指令有2种情况,

第一种:OP(A1)—>A1,比如加1、减1、取反、求补等,完成一次指令需要访存3次(取指令,取A1,存A1);

第二种:(ACC)OP(A1)—>ACC,自身与ACC(寄存器)操作,完成一次指令需要访存2次(寄存器不是主存,所以不算访存次数)(取指令,取A1)。

这个时候除了操作码,所有的地址都能用于寻址了,1个地址占24位,指令操作数的直接寻址范围为2^24=16777216。

(5)零地址指令

OP

指令含义:
1、不需要操作数,如空操作、停机、关中断等指令
2、堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶

这篇关于第一章 计算机硬件基础(指令格式)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/809743

相关文章

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

利用Python脚本实现批量将图片转换为WebP格式

《利用Python脚本实现批量将图片转换为WebP格式》Python语言的简洁语法和库支持使其成为图像处理的理想选择,本文将介绍如何利用Python实现批量将图片转换为WebP格式的脚本,WebP作为... 目录简介1. python在图像处理中的应用2. WebP格式的原理和优势2.1 WebP格式与传统

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re