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

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

相关文章

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

Python中Windows和macOS文件路径格式不一致的解决方法

《Python中Windows和macOS文件路径格式不一致的解决方法》在Python中,Windows和macOS的文件路径字符串格式不一致主要体现在路径分隔符上,这种差异可能导致跨平台代码在处理文... 目录方法 1:使用 os.path 模块方法 2:使用 pathlib 模块(推荐)方法 3:统一使

Java中使用注解校验手机号格式的详细指南

《Java中使用注解校验手机号格式的详细指南》在现代的Web应用开发中,数据校验是一个非常重要的环节,本文将详细介绍如何在Java中使用注解对手机号格式进行校验,感兴趣的小伙伴可以了解下... 目录1. 引言2. 数据校验的重要性3. Java中的数据校验框架4. 使用注解校验手机号格式4.1 @NotBl

Python批量调整Word文档中的字体、段落间距及格式

《Python批量调整Word文档中的字体、段落间距及格式》这篇文章主要为大家详细介绍了如何使用Python的docx库来批量处理Word文档,包括设置首行缩进、字体、字号、行间距、段落对齐方式等,需... 目录关键代码一级标题设置  正文设置完整代码运行结果最近关于批处理格式的问题我查了很多资料,但是都没

基于Python开发PDF转Doc格式小程序

《基于Python开发PDF转Doc格式小程序》这篇文章主要为大家详细介绍了如何基于Python开发PDF转Doc格式小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用python实现PDF转Doc格式小程序以下是一个使用Python实现PDF转DOC格式的GUI程序,采用T

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应