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

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

相关文章

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

从基础到进阶详解Python条件判断的实用指南

《从基础到进阶详解Python条件判断的实用指南》本文将通过15个实战案例,带你大家掌握条件判断的核心技巧,并从基础语法到高级应用一网打尽,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录​引言:条件判断为何如此重要一、基础语法:三行代码构建决策系统二、多条件分支:elif的魔法三、

Python WebSockets 库从基础到实战使用举例

《PythonWebSockets库从基础到实战使用举例》WebSocket是一种全双工、持久化的网络通信协议,适用于需要低延迟的应用,如实时聊天、股票行情推送、在线协作、多人游戏等,本文给大家介... 目录1. 引言2. 为什么使用 WebSocket?3. 安装 WebSockets 库4. 使用 We

从基础到高阶详解Python多态实战应用指南

《从基础到高阶详解Python多态实战应用指南》这篇文章主要从基础到高阶为大家详细介绍Python中多态的相关应用与技巧,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、多态的本质:python的“鸭子类型”哲学二、多态的三大实战场景场景1:数据处理管道——统一处理不同数据格式

MySQL数据类型与表操作全指南( 从基础到高级实践)

《MySQL数据类型与表操作全指南(从基础到高级实践)》本文详解MySQL数据类型分类(数值、日期/时间、字符串)及表操作(创建、修改、维护),涵盖优化技巧如数据类型选择、备份、分区,强调规范设计与... 目录mysql数据类型详解数值类型日期时间类型字符串类型表操作全解析创建表修改表结构添加列修改列删除列

Python 函数详解:从基础语法到高级使用技巧

《Python函数详解:从基础语法到高级使用技巧》本文基于实例代码,全面讲解Python函数的定义、参数传递、变量作用域及类型标注等知识点,帮助初学者快速掌握函数的使用技巧,感兴趣的朋友跟随小编一起... 目录一、函数的基本概念与作用二、函数的定义与调用1. 无参函数2. 带参函数3. 带返回值的函数4.

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group