计组--指令系统--复习专用

文章目录

  • 前言
  • 一、指令系统概述
  • 二、指令结构
  • 三、操作数类型
  • 四、指令操作码and扩展技术
  • 五、寻址方式
    • 1.指令寻址
    • 2.数据寻址
  • 总结


前言

学无止境,笔勤不辍。今天,笔者分享关于计组中指令系统的复习知识点…


一、指令系统概述

有关机器指令的介绍,读者可查阅笔者在计组专栏下的相关内容,这里就不赘述了…这里主要介绍一下指令系统:
1.指令系统(指令集):一台计算机的所有机器指令的集合,是计算机软件和硬件的交界口和接口。
2.汇编指令:机器指令的二进制代码的助记符
3.指令信息:1.指令的功能:要执行的操作;2.操作的对象:要处理/参与运算的数据(源操作数);3.操作的结果:存放运算/处理结果的数据(目的操作数);4.下一条指令的地址:指出下一条指令在主存中的地址
不同的CPU在指令格式、指令类型、寻址方式、指令条数等方面有差异...

二、指令结构

机器指令一般包括两部分:1.操作码(OP) 2.地址码
操作码:用于指令该指令所要完成的操作,规定了指令的格式,同时每条指令的操作码是唯一的,反映了指令的条数。
操作码可能是分段的
地址码:包含指令操作数的地址信息/转移类指令下一条指令的位置信息,地址码个数由操作数个数决定。
地址码可以是操作数本身/操作数地址/下一条指令的地址

根据地址数不同,可以分为以下几类:
1.三地址指令:  OP A1 A2 A3,记为(A1)OP(A2)->A3,将A1 A2计算结果存入A3中
2.二地址指令: OP A1 A2 ,记为 (A1)OP(A2)->A1,将A1 A2计算结果存入A1中
3.一地址指令: OP A  一种是单目运算,记为 OP(A)->A;一种是隐含规定操作数
4.零地址指令:OP  一种是无操作数,空指令/动态停机指令HLT;另一种是隐含规定操作数

指令字长:一条机器指令包含的二进制位数

根据长度是否固定,可分为两类:
1.固定指令字长:所有指令的字长均相等,一般等于机器字长
2.可变指令字长:指令字长不固定,一般是字节的整数倍

三、操作数类型

1.立即数类型操作数:是一个常数,存放在指令中,取出指令即得到了操作数,地址码字段本身就是立即数本书,记作imm/Data
2.寄存器类型操作数:存放在CPU通用寄存器堆的某个寄存器中,地址码A是该寄存器的编号(地址),记为Reg[A]/(A)
3.存储器类型操作数:操作数存放在主存单元中,地址码A是其地址信息,此时A可以是直接/间接/形式地址/相对偏移量,取决于寻址方式,而有效的能真正表示操作数在主存中的地址的记为EA,操作数标记为Mem[EA]/(EA)
4.I/O设备操作数,地址码A是其接口地址,记为IO(A)

操作数本身含义(数据类型)可分为:1.数值数据 2.指针/地址 3.位/位串数据 4.字符/字符串 5.逻辑数据
由于指令字长有限,地址码长度也有限,取出的数值要经过扩展再使用。

扩展方式有两种:
1.符号扩展:将字段最高位视为符号位,填充到所有高位,一般用于扩展有符号立即数、相对偏移量
2.零扩展:用0填充所有高位,一般用于扩展无符号立即数、地址信息等

四、指令操作码and扩展技术

指令操作码长度决定了指令的条数

1.定长编码:将操作码放在指令字的一个/几个字段内,编码长度固定
2.变长编码:操作码长度不固定,不同指令操作码长度不一,一般通过操作码扩展方式分散在指令字的不同字段中,可有效压缩操作码的平均长度

操作码扩展技术:将不使用的地址码字段扩展为操作码,扩展时需要留出一个编码用于区分扩展/未扩展指令

五、寻址方式

寻址方式:1.确定本条指令的操作数地址,数据寻址 2.寻找下一条要执行的指令地址,指令寻址

1.指令寻址

1.顺序寻址:程序(指令序列)是顺序存放在存储器中,指令地址也是连续且按顺序递增的,指令按顺序依次执行。(在控制器中设置一个专用的寄存器——程序计数器(PC)来存放指令在主存中的地址以实现顺序寻址。
每取出一条指令,控制器便控制PC自增指令所占主存地址数,使得PC指向下一条指令
2.跳跃寻址:通过转移类指令实现,执行转移指令跳跃到不连续的目标地址(TA)再继续执行。而TA由指令的地址码直接/通过计算给出,然后用TA修改PC值,(TA->PC)

TA获取的四种方法:
1.直接转移:指令地址码直接给出目标地址(TA=A)
2.相对转移:指令地址码+PC得到目标地址(TA=A+PC)
3.寄存器寻址的间接转移:指令地址码给出寄存器号,该寄存器中存储目标地址(TA=Reg(A)  TA=(A)
4.寄存器相对转移:指令中给出寄存器号和相对偏移量,两者相加得出目标地址(TA=(A)+K),这种寻址方式称为变址寻址方式/基址寻址方式的转移

2.数据寻址

数据寻址的方式较多,在指令中设置一个寻址方式码(MOD)来指明寻址方式
此时指令的地址码字段A一般并不是操作数的真实有效地址(EA)而是形式地址,EA由MOD 和 A 共同决定

1.立即寻址:地址码直接给出操作数(常数/立即数),地址码本身就是操作数
2.直接寻址(要访问两次主存):地址码A直接给出操作数有效地址,即EA=A,直接访问A所指存储单元获取操作数
3.间接寻址:地址码A给出存储EA的单元地址,再由EA访问操作数,EA=(A)
4.寄存器寻址:地址码字段给出寄存器编码,通过访问寄存器获取操作数 
5.寄存器间接寻址:地址码给出寄存器所在编码,而该寄存器中存储EA=Reg(A),再通过EA访问主存获取操作数
6.变址寻址:指令形式:OP MOD Rx A EA = (Rx)+A 地址码中包含变址寄存器号和形式地址A(基址),通过访问变址寄存器获取变址值,然后Rx A通过加法得到EA,最后通过EA访问主存获取操作数
7.基址寻址:EA =(Rb)+A,此时,Rb是基址寄存器,存储基址,A则是相对偏移量
8.相对寻址:EA = PC+A PC是当前指令的地址 A是地址码字段(相当于当前指令地址的偏移量)
9.堆栈寻址:堆栈是若干个联系的主存单元构成的后进先出的存储空间,第一个放入堆栈的数据所在的存储单元是栈底,最近放入的数据的存储单元叫栈顶,栈底位置不变,堆栈只能堆栈顶元素进行访问。用一个专用寄存器存放栈顶对应的存储单元的地址->堆栈指针
堆栈指针SP访问堆栈获取操作数/把操作数存入堆栈中。 采用堆栈寻址的指令字中,操作数的有效地址隐含在SP中
10.复合寻址:将以上的集中寻址方式组合...

其余自学…或不考… 因此这里就不给出说明,之后有时间应该会补上…


总结

以上就是今天要讲的内容,本文介绍了计组有关指令系统的相关知识点…希望大家能好好复习,不挂科…笔者后续会再更后面章节的内容…(过一两天,会更一下数据库的知识点)…希望大家多多关注…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用英文介绍纽约:NEW YORK, USA‘s MEGACITY

NEW YORK, USA’s MEGACITY | America’s Largest City Link: https://www.youtube.com/watch?vdzjQ-akB3BI&listPLmSQiOQJmbZ7TU39cyx7gizM9i8nOuZXy&index24 The story of New York City, America’s megalopolis. Summary Paragraph 1: The Historical Developm…

PostgreSQL 高级功能与扩展(九)

1. JSONB 数据类型与操作 1.1 JSONB 简介 JSONB 是 PostgreSQL 中的一种数据类型,用于存储 JSON 格式的数据,并提供高效的查询和索引功能。 1.1.1 创建 JSONB 列 CREATE TABLE json_data ( id SERIAL PRIMARY KEY, data JSONB ); 1.2 JSONB 查询与索…

Chrome插件:​Vue.js Devtools 高效地开发和调试

在现代前端开发中,Vue.js因其灵活性和性能优势,受到越来越多开发者的青睐。然而,随着项目规模的扩大,调试和优化变得愈发复杂。幸运的是,Vue.js Devtools的出现,为开发者提供了一套强大的工具集&#xff0c…

vue大屏适配方案

前言 开发过大屏的铁汁们应该知道,前期最头疼的就是大屏适配,由于大屏项目需要在市面上不是很常见的显示器上进行展示,所以要根据不同的尺寸进行适配,今天我将为大家分享的我使用的大屏适配方案,话不多说,直…

mongo基础操作总结

1.新搭建的环境没有安全验证,很容易被入侵,两个基础的安全模式: 1:一个改端口号,把默认27017改了,对方不知道端口号就没法入侵 2:建安全验证用户,先关闭安全验证,插入用…

Matlab|风光及负荷多场景随机生成与缩减

目录 1 主要内容 计算模型 场景生成与聚类方法应用 2 部分程序 3 程序结果 4 下载链接 1 主要内容 该程序方法复现了《融合多场景分析的交直流混合微电网多时间尺度随机优化调度策略》3.1节基于多场景技术的随机性建模部分,该部分是随机优化调度的重要组成部分…

轻松掌握:工科生如何高效阅读国际期刊和撰写论文(下)

⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨‍🎓。 如果觉得本文能帮到您,麻烦点个赞👍呗! 近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支…

每日新闻掌握【2024年6月24日 星期一】

2024年6月24日 星期一 农历五月十九 大公司/大事件 阿里巴巴全球数学竞赛决赛试题公布,获奖选手名单将于8月公布 据阿里达摩院官微消息,北京时间6月22日24时,2024阿里巴巴全球数学竞赛决赛正式结束。本届决赛共有来自全球17个国家和地区的8…

源码解读:InternVL 1.5

源码地址:https://github.com/OpenGVLab/InternVL/tree/main/internvl_chat/internvl/model/internvl_chat 配置 在internvl_chat/internvl/model/internvl_chat/configuration_intern_vit.py 用InternVisionConfig类来设置类,用于初始化模型 num_channels=3,patch_size=1…

使用Spring Boot框架来生成HTML页面并返回给客户端

文章目录 1. 创建Spring Boot项目1.1 项目结构 2. 配置 pom.xml3. 编写代码3.1 创建主应用程序类3.2 创建数据模型3.3 创建数据仓库3.4 创建控制器3.5 创建HTML模板 4. 运行应用程序总结 下面是一个简单的Java实现,使用Spring Boot框架来生成HTML页面并返回给客户端…

透明屏幕的魅力:为何它如此受欢迎

在科技日新月异的今天,透明屏幕技术以其独特的魅力和广泛的应用前景,逐渐成为了科技领域的一颗璀璨明星。从智能手机、平板电脑到大型显示屏,透明屏幕技术以其前所未有的视觉体验和实用性,赢得了广大消费者的喜爱。 一、透明屏幕的…

docker 镜像突然拉取不了,教你解决

最近我们可以发现,在Linux系统里拉取不了镜像了,翻墙也拉取不了,这时候我们可以有一个新的docker 镜像同步网站来解决这个问题 一、首先打开镜像官网(需要翻墙) https://hub.docker.com/ 然后搜索一个镜像 搜索最新…

Nginx实战:简单登录验证配置(基于openssl)

本文提供的是基于openssl创建的密码文件,对nginx指定的location访问。进行登录验证的配置方式。 1、验证页面配置 我的nginx实验环境是直接yum安装的,如果是自己编译安装的那么对应目录就是自己安装配置的目录。 先在/usr/share/nginx/html下创建一个usertest.html,里面添加…

Spring Cache常见问题解决

目录 一 报错:Null key returned for cache operation 二 报错:类型转换异常 三 取出的数据为null 一 报错:Null key returned for cache operation 这里报错有两种情况: 第一,如果你在新增的方法上使用Cacheable注解,那么肯定是…

绝望中迎来曙光,阿里大模型算法岗 Offer 突然来了!

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型技术趋势、算法项目落地经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了深入的讨论。 总结链接如…

用定时器T1中断控制两个LED以不同周期闪烁

#include<reg51.h> // 包含51单片机寄存器定义的头文件 sbit D1P2^0; //将D1位定义为P2.0引脚 sbit D2P2^1; //将D2位定义为P2.1引脚 unsigned char Countor1; //设置全局变量&#xff0c;储存定时器T1中断次数 unsigned char Countor2; //设置全局变量&#xff0c;储…

c++之CRTP

CRTP概述 CRTP&#xff0c;即奇异递归模板模式&#xff08;Curiously Recurring Template Pattern&#xff09;&#xff0c;由James O. Coplien在其1995年的论文中首次提出&#xff0c;是C中一个独特而强大的设计模式。它利用模板和继承的特性&#xff0c;允许在编译时进行多态…

virutalBox安装debian并配置docker环境

下载镜像 https://gemmei.ftp.acc.umu.se/debian-cd/current/amd64/iso-cd/debian-12.5.0-amd64-netinst.iso 虚拟机安装 如何在Virtual Box 上安装Debian系统_virtual box debian iso netinst-CSDN博客 启动命令行模式 如何设置Debian图形启动或命令行界面启动&#xff1…

什么是Cookie?有什么用?如何清除浏览器中的Cookie?

互联网上的每一次点击和每一个选择都可能被一种名为Cookie的技术记录下来。但Cookie是什么&#xff1f;我们在网站上登录时&#xff0c;为什么经常会被问及是否接受Cookie&#xff1f;接受Cookie登录会不会影响我们的在线隐私&#xff1f; Cookie是什么&#xff1f; Cookie是一…

设计模式3-分类

设计模式-分类 模式的分类从目的来分创建型模式&#xff08;Creational Patterns&#xff09;结构型模式&#xff08;Structural Patterns&#xff09;行为型模式&#xff08;Behavioral Patterns&#xff09; 从范围来分类模式&#xff08;Class Patterns&#xff09;对象模式…