计算机组成原理-笔记-第四章

news2024/11/24 11:08:32

目录

第四章——指令系统

1、指令格式

(1)指令(机器指令-二进制数)

(2)指令分类(按照 地址码的数量 分类)

(3)指令分类(按照长度分类)

(4)指令分类(按照 操作类型)

(5)总结

2、拓展操作码

(1)操作码拓展方法(注意事项)

(2)习题(拓展操作码)

(3)总结

3、指令寻址(顺序、跳跃)

(1)总结

4、数据寻址

(1)直接寻址(和立即寻址不一样——2次)

(2)间接寻址(便于-编制程序-n次)

(3)寄存器寻址(速度快-1次)

(4)寄存器间接寻址(速度快-对间接寻址来说-2次)

(5)隐含寻址

(6)立即寻址

(7)总结

5、数据寻址(偏移寻址)

(1)基址寻址(基地址+偏移量——面向操作系统)

(2)变址寻址(循环结构——面向程序员)

(3)相对寻址(方便jump跳转!)

(4)总结

(5)硬件——比较器

(6)堆栈寻址(软硬件的实现方式都有——pop & push)

6、汇编语言

(1)   指明内存的读写长度

(2)   寄存器

(3)   命令说明

(4) X86汇编指令

(5) AT&T格式 和 Intel格式

(6) 选择语句(用jump)

(7) 循环语句(jump & loop)

(8) CISC & RISC


第四章——指令系统

CPU设计厂商会定义并实现一组机器指令集,供汇编语言使用和调用。

机器指令是计算机硬件直接理解和执行的指令,它们以二进制形式表示,对应着特定的操作和功能。

1、指令格式

 

(1)指令(机器指令-二进制数)

(2)指令分类(按照 地址码的数量 分类)

 

 

(3)指令分类(按照长度分类)

机器字长:CPU一次运算,可以处理的位数!(16、32、64位)x32、x64

因此,当指令是双字长指令时,那么CPU需要分两次读取!

(4)指令分类(按照 操作类型)

(5)总结


2、拓展操作码

(1)操作码拓展方法(注意事项)

 

(2)习题(拓展操作码)

 

(3)总结


 

3、指令寻址(顺序、跳跃)

顺序寻址:

根据【指令长度】和【主存储器如何编址】来进行计数(PC-program count)

即由【指令长度】和【主存储器如何编址】的比值来确定累加的步进

PC的数值——指向下一个要运行的指令!(类似于让你运行对应的代码行数!)

跳跃寻址:

当你按照顺序寻找的时候,遇到函数或者(goto语句时),就会跳转到对应的代码行!

这个也是类似!,当你遇到jump语句时,要跳到指定位置!!!

定长指令

变长指令 

(1)总结


 

4、数据寻址

 

(1)直接寻址(和立即寻址不一样——2次)

直接:直接去主存中找!

立即:地址码=操作数——直接用!

 

(2)间接寻址(便于-编制程序-n次)

 

(3)寄存器寻址(速度快-1次)

 

(4)寄存器间接寻址(速度快-对间接寻址来说-2次)

(5)隐含寻址

(6)立即寻址

(7)总结

5、数据寻址(偏移寻址)

(1)基址寻址(基地址+偏移量——面向操作系统)

记得要用bit位来表明——哪一个寄存器中存放了基地址!!!

优点:存储在内存中,偏移量按照基地址来算(相当于是:相对的),所以当程序并发运行时,指令存储的位置即使有变动,指令也无需修改!

缺点:基址寻址需要一个特定的寄存器来存储基址的值,并且在执行指令时需要进行基址和偏移量的计算。这会引入一定的额外开销。

 

(2)变址寻址(循环结构——面向程序员)

 

(3)相对寻址(方便jump跳转!)

注意:程序段发生改变,那么程序指向的操作数会不会改变呢?

优化方法:将数据段和程序段分开!这样当程序段改变,指向的数据位置就不会改变啦!

(4)总结

(5)硬件——比较器

(6)堆栈寻址(软硬件的实现方式都有——pop & push)

6、汇编语言

(1)   指明内存的读写长度

(2)   寄存器


(3)   命令说明

 

(4) X86汇编指令

(5) AT&T格式 和 Intel格式

 

(6) 选择语句(用jump)

(7) 循环语句(jump & loop)

(8) CISC & RISC

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

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

相关文章

Dubbo启动错误

加完Nacos配置后报错 信息: [DUBBO] The registry[<dubbo:registry address"nacos://localhost:8848" protocol"nacos" port"8848" />] will be used as the config center, dubbo version: 2.7.8, current host: 192.168.0.103 八月 09…

【香瓜说职场】如何高效地提问(2018.05.06)

一、什么是低效地提问&#xff1f; 香瓜先举3个非常非常常见的低效提问实例&#xff1a; 1、“为什么我的XXX不成功&#xff1f;” 这个问题就像“为什么我会摔倒”&#xff0c;可能原因有“腿残疾”、“路上有坑”、“眼神不好”等无数种原因……“不摔倒”的我是回答不了的、…

怎么学习JavaScript相关技术? - 易智编译EaseEditing

学习JavaScript相关技术需要一步步地积累知识和实践经验。以下是一些建议的学习步骤和资源&#xff1a; 基础知识&#xff1a; 开始学习JavaScript之前&#xff0c;了解基本的编程概念和术语。你可以通过在线课程、教材或教学视频来学习编程的基础知识。 学习基本语法&#x…

设计模式行为型——模板模式

目录 模板模式的定义 模板模式的实现 模板模式角色 模板模式类图 模板模式举例 模板模式代码实现 模板模式的特点 优点 缺点 使用场景 注意事项 实际应用 模板模式的定义 模板模式&#xff08;Template Pattern&#xff09;属于行为型设计模式&#xff0c;又叫模版…

OpenLayers入门,OpenLayers实现地图原地旋转动画效果

专栏目录: OpenLayers入门教程汇总目录 前言 OpenLayers实现地图原地旋转动画效果,顾名思义,就是站在原地转一圈。 二、依赖和使用 "ol": "^6.15.1"使用npm安装依赖npm install ol@6.15.1使用Yarn安装依赖yarn add olvue中如何使用: vue项目使用…

opencv基础 42- Scharr算子-cv2.Scharr()(边缘检测基础)

Scharr算子是用于计算图像梯度的一种常用算子&#xff0c;特别是在边缘检测任务中。它是Sobel算子的改进版本&#xff0c;旨在提供更加准确和敏感的边缘检测。 在离散的空间上&#xff0c;有很多方法可以用来计算近似导数&#xff0c;在使用 33 的 Sobel 算子时&#xff0c;可能…

Android进阶之SeekBar动态显示进度

SeekBar 在开发中并不陌生,默认的SeekBar是不显示进度的,当然用吐司或者文案在旁边实时显示也是可以的,那能不能移动的时候才显示&#xff0c;默认不显示呢,当然网上花哨的三方工具类太多了&#xff0c;但是我只是单纯的想在SeekBar的基础上去添加一个可以跟随移动显示的气泡而…

循环结构的学习

循环结构 文章目录 为什么要学习循环while循环dowhile循环偶数之和断点调试购物结算循环的选择类名和全类名摄氏华氏对照表for循环for执行次序五门功课成绩for的特殊写法break和continue录入客户信息_continue使代码优雅小数的比较不能用或! 为什么要学习循环 在编写代码时&a…

mysql死锁分析show engine innodb status

文章目录 1、show engine innodb status命令2、前置知识3、无符号数、有符号数4、innodb关于有符号数的规定5、为什么会有这个规定 1、show engine innodb status命令 最近在使用mysql的show engine innodb status命令分析死锁&#xff0c;发现了一个有意思的点。就是红框里圈…

【小梦C嘎嘎——启航篇】类和对象(中篇)

【小梦C嘎嘎——启航篇】类和对象&#xff08;中篇&#xff09;&#x1f60e; 前言&#x1f64c;类的6个默认成员函数构造函数析构函数拷贝构造函数拷贝构造函数的特性有哪些&#xff1f;既然编译器可以自动生成一个拷贝构造函数&#xff0c;为什么我们还要自己设计实现呢&…

python数据分析 期末测验,python数据分析基础题库

大家好&#xff0c;小编为大家解答python数据分析选择题题目的问题。很多人还不知道python数据分析题目和答案&#xff0c;现在让我们一起来看看吧&#xff01; 自测试卷 5 一、选择题 1 &#xff0e;下面关于 RFM 模型说法正确的是&#xff08; &#xff09;。 A &#xff0e;…

微信小程序(由浅到深)

文章目录 一. 项目基本配置1. 项目组成2. 常见的配置文件解析3. app.json全局的五大配置4.单个页面中的page配置5. App函数6.tabBar配置 二. 基本语法&#xff0c;事件&#xff0c;单位1. 语法2. 事件3. 单位 三. 数据响应式修改四 . 内置组件1. button2. image3. input4. 组件…

钓鱼攻击:相似域名识别及如何有效预防攻击

网络犯罪分子很乐意劫持目标公司或其供应商或业务合作伙伴的官方域名&#xff0c;但在攻击的早期阶段&#xff0c;他们通常没有这种选择。相反&#xff0c;在有针对性的攻击之前&#xff0c;他们会注册一个与受害组织的域名相似的域名 - 他们希望您不会发现其中的差异。此类技术…

opencv基础51-图像轮廓04-轮廓多种图形拟合讲解及示例

轮廓拟合&#xff08;Contour Fitting&#xff09;是指在图像处理中&#xff0c;通过一些数学模型或曲线拟合方法来近似描述图像中的轮廓。图像中的轮廓是指物体的边界&#xff0c;轮廓拟合可以用于提取、描述和分析物体的形状。 常用的轮廓拟合方法包括多项式拟合、贝塞尔曲线…

【刷题笔记8.9】LeetCode题目:两数相加

LeetCode题目2&#xff1a;两数相加 题目及描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设…

【uniapp】封装一个全局自定义的模态框

【需求描述】 在接口401处&#xff0c;需要实现全局提示并弹出自定义模态框的功能。考虑到uni-app内置的模态框和app原生提示框的自定义能力有限&#xff0c;我决定自行封装全局自定义的模态框&#xff0c;以此为应用程序提供更加统一且个性化的界面。 【效果图】 【封装】 主…

Ansible Playbook快速部署一主多从MySQL集群

部署目标&#xff1a; 1、快速部署一套一主两从的mysql集群 2、部署过程中支持交互式定义安装目录及监听端口号 部署清单目录结构&#xff1a; rootmaster:/opt/mysql# tree . . ├── group_vars │ └── all.yml ├── hosts ├── mysql.yml └── roles└── mys…

两个状态的马尔可夫链

手动推导如下公式。 证明&#xff1a; 首先将如下矩阵对角化&#xff1a; { 1 − a a b 1 − b } \begin {Bmatrix} 1-a & a \\ b & 1-b \end {Bmatrix} {1−ab​a1−b​} (1)求如下矩阵的特征值&#xff1a; { 1 − a a b 1 − b } { x 1 x 2 } λ { x 1 x 2 }…

Android Https

本质&#xff1a;在客户端和服务端使用非对称加密协商出一套对称密钥&#xff0c;每次发送数据前加密&#xff0c;收到后解密&#xff0c;达到加密传输 http ssl 在http之下增加了安全层&#xff0c;用于保障http的加密传输 HTTPS连接 TLS连接步骤 1.客户端发送 client h…