计算机组成原理复习笔记

前言

就是按照考试的题型写的总结 非常应试版

题型

一、进制转换

只考 十进制 二进制 十六进制 之间的相互转换 一个个看

(1)十进制 转其他

  • 转二进制:除以2 从小到大取余数(0或1)
    在这里插入图片描述
  • 转十六进制 : 除以16 从小到大取余数 (0到f)在这里插入图片描述

(2)二进制 十六进制 转十进制

每位数字乘以相应的幂数再相加
在这里插入图片描述

(3)二进制与十六进制的互相转换

二进制的四位对应十六进制的一位
在这里插入图片描述
在这里插入图片描述

二、 位运算 逻辑运算

(1)位运算

转换成二进制数 做如下运算
在这里插入图片描述

(2)逻辑运算

如果是 !或者&& 就按正常的非零或者零计算就行(例如!a ,a为非零数 那么结果为0)

(3)无符号数的比较

首先补码得转换成无符号数
-1 对应的无符号数是有符号数最大值加一
对应转换准则如下:

在这里插入图片描述

三、大端序小端序

就是把十六进制数 按每一个字节填写两个十六进制位的格式以及大小端的顺序(从左还是从右开始)放入
大端序就是比较舒服 不用改顺序的填入即可
比如下图给定0x01234567 大端序就是直接往里填即可

在这里插入图片描述

其实上面三个题型涉及的知识都在我的笔记3里 需要的自行查看

四、寄存器的值(地址计算)

  • 注意一下存储器寻址的计算
    在这里插入图片描述
  • 以及注意区别寄存器取地址和存储器取地址在这里插入图片描述

五、据汇编指令写C代码

  • 一般考比较常见的mov指令 push、pop指令(进栈出栈)以及jx指令(跳转 条件)sub指令 cmp指令(比较指令)call指令 ret指令
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 注意一下后缀
    在这里插入图片描述

以上两个题型在我的笔记11以及笔记12里可以找到,不熟悉的建议回溯一下(进出栈的正在写)

六、符号解析

链接的内容(也正在写T_T)
稍微回顾一下

  • 全局符号
    由模块m定义的并能被其他模块所引用
    例如:非static的C函数和非static的全局变量
    全局符号包括强符号和弱符号
    • 强符号:函数和已初始化的全局变量
    • 弱符号:未初始化的全局变量
    • 符号链接规则:在链接过程中,符号出现重名的情况时:
      ◼规则1:不允许有多个同名的强符号,每个强符号只能被定义一次,否则链接失败
      ◼规则2:如果有一个强符号和多个弱符号同名,那么选择强符号,对弱符号的引用被解析为强符号
      ◼规则3:如果有多个弱符号同名,那么从这些弱符号中任意选择一个,可以通过gcc –fno-common选项重定义这一条规则(生成一个警告)
  • 局部符号
    只能被模块m定义和引用的符号
    例如:使用static关键字修饰的C函数和变量
    局部符号不是局部变量
  • 外部符号
    由其他模块定义并被模块m中引用的全局符号

下面是符号解析的一个例子
在这里插入图片描述

七、内存布局

内存分布以及结构体对齐
在这里插入图片描述

八、一些计算

1.流水线的性能(延迟与吞吐率)

请看笔记7
在这里插入图片描述

2.磁盘的容量与平均访问时间

  • 容量
    在这里插入图片描述
  • 磁盘访问时间在这里插入图片描述
    在这里插入图片描述

请看笔记8

3.高速缓存平均访问时间计算

平均访问时间 = 未命中率*未命中惩罚 + 命中率 * 命中时间
请看笔记9

九、一些重要概念的考察

  • 存储器层次结构的特点在这里插入图片描述
  • 攻击缓冲区溢出漏洞所采用的主要手段
    • 栈随机化 不可执行段 栈金丝雀
  • 程序的局部性原理

在这里插入图片描述

  • switch 语句在汇编语言水平上的主要实现思路
  • 读高速缓存

例题

一、据汇编指令写C代码

在这里插入图片描述
这个就是考察了mov 结合下面的C代码我们可以分析出寄存器与局部变量的对应关系
*xp - %ebp+8
*yp - %ebp+12
t0 - %edx
t1 - %ecx
xp - %ebx
yp - %eax
由此
*xp = t1;
*yp = t2;

在这里插入图片描述
x-%ebp+8 - %edx
y - %ebp+12 - %eax
result - %ebp
跳转指令那里等价于 y <x则跳转L6
所以是 result = x - y
否则就是 result = y - x(跳转指令后面的指令)
(结果存到栈中)

二、内存布局

在这里插入图片描述
嵌套数组地址从小到大可以表示为 2 0 6 2 1 3 2 1 7 2 2 1
(题目中的表示相当于二维数组 pgh[4][3],按照行优先原则分配内存地址)
在这里插入图片描述
结构体对齐 跟嵌套数组是同一篇笔记
在这里插入图片描述

PS

还有两章没写完的 明天再赶一下 博主觉得难的就是概念的默写(?)以及按照汇编指令写C代码这块 内存布局的作画上也稍微有点难度

复习建议就是加强概念的掌握kk 后续应该还会再编辑一下这篇笔记的概念这部分 剩下的大家自己加油^^

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

进军rust:从0开始学习rust语法

一.变量类型 Rust语言中的基础数据类型有以下几种&#xff1a; 1.整数型 整数型简称整型&#xff0c;按照比特位的长度和有无符号位可以分为以下几种 isize和usize两种整数类型是用来衡量数据大小的&#xff0c;它们的位长度取决于所运行的目标平台&#xff0c;如果是32位架…

如何在 iPhone 上恢复已删除的短信

本文介绍如何检索已删除的短信和 iMessage 以及恢复丢失的消息。说明适用于 iOS 17 及更高版本。 如何在 iOS 17及更高版本中恢复文本 恢复已删除短信的最简单方法是使用 iOS 17。从删除短信到恢复它有 30 到 40 天的时间。 在“信息”的对话屏幕中&#xff0c;选择“过滤器”…

老旧机子装linux——Xubuntu

目录 前言 正文 下载系统 ​编辑 制作系统盘&#xff1a; 安装界面 Xubuntu ​编辑 lubuntu 后语 前言 有两台电脑&#xff0c;一台装了Ubuntu22&#xff0c;一台装了debuntu。虽然debuntu界面与乌班图大体一样&#xff0c;但是编译器好像有点区别。由于机子为10年前的老…

二分【1】二分查找框架 查找指定元素

目录 二分查找 基本思想 几种情况汇总 一。严格递增序列 1.查找本身 2.查找第一个大于等于自己的 3.查找第一个大于自己的 4.严格递减序列 二。有重复元素 1.取其中第一个出现的 2.取其中最后一个出现的 二分查找 基本思想 几种情况汇总 一。严格递增序列 1.查找本身…

【UML用户指南】-11-对高级结构建模-高级关系

目录 1、依赖&#xff08;dependency&#xff09; 1.1.1、绑定&#xff08;bind&#xff09; 1.1.2、导出&#xff08;derive&#xff09; 1.1.3、允许&#xff08;permit&#xff09; 1.1.4、实例&#xff08;instanceOf&#xff09; 1.1.5、实例化&#xff08;instanti…

解锁俄罗斯市场:如何选择优质的俄罗斯云服务器

在当前云计算市场上&#xff0c;很多大型的云厂商并没有俄罗斯服务器的云节点&#xff0c;这给许多企业在拓展海外业务时带来了一定的困扰。然而&#xff0c;俄罗斯作为一个经济发展迅速的国家&#xff0c;其市场潜力不可忽视。因此&#xff0c;选择一台优质的俄罗斯云服务器成…

Docker搭建可道云

Docker搭建可道云&#xff08;存储&#xff09; 文章目录 Docker搭建可道云&#xff08;存储&#xff09;介绍资源列表基础环境一、安装Docker二、配置Docker加速器三、搭建可道云私有云盘3.1、编写Dockerfile3.2、上传资源到指定目录3.3、查看目录下所有资源 四、构建镜像五、…

Java | Leetcode Java题解之第140题单词拆分II

题目&#xff1a; 题解&#xff1a; class Solution {public List<String> wordBreak(String s, List<String> wordDict) {Map<Integer, List<List<String>>> map new HashMap<Integer, List<List<String>>>();List<List…

HC05蓝牙模块与笔记本蓝牙连接

文章目录 1. 电脑和蓝牙模块连接 2. 串口软件调试 1. 电脑和蓝牙模块连接 HC05支持SPP协议&#xff0c;使用PC主机自带蓝牙&#xff0c;或者笔记本加蓝牙适配器。与HC05连接后&#xff0c;可在电脑端虚拟出串口&#xff0c;这样上位机软件就可以像操作串口一样与HC05通信。对…

Kafka监控系统efak的安装

下载地址Kafka Eaglehttp://download.kafka-eagle.org/下载地址连接不稳定&#xff0c;可以多次尝试直到成功连接下载 1.解压安装包并重命名 tar -zxvf kafka-eagle-bin-3.0.1.tar.gz 查看到解压后包含一个安装包&#xff0c;再解压 tar -zxvf efak-web-3.0.1-bin.tar.gz 移…

Spring Boot集成pmd插件快速入门Demo

1.什么是pmd插件&#xff1f; PMD 插件允许您在项目的源代码上自动运行PMD代码分析工具&#xff0c;并生成带有其结果的站点报告。它还支持与 PMD 一起分发的单独的复制/粘贴检测器工具&#xff08;或 CPD&#xff09;。 此版本的 Maven PMD 插件使用 PMD 6.42.0 并且需要 Jav…

在Java中使用SeleniumAPI,超详细

Java中 Selenium相关操作 1 定位元素 1.1 css选择器定位元素 就是定位到页面的元素&#xff0c;本质上就是一个一个的语法 下面举几个具体的例子&#xff1a; 类选择器 按照给定的 class 属性的值&#xff0c;选择所有匹配的元素。 语法&#xff1a;.classname 例子&am…

项目验收总体计划书(实际项目验收原件参考Word)

测试目标&#xff1a;确保项目的需求分析说明书中的所有功能需求都已实现&#xff0c;且能正常运行&#xff1b;确保项目的业务流程符合用户和产品设计要求&#xff1b;确保项目的界面美观、风格一致、易学习、易操作、易理解。 软件全套文档过去进主页。 一、 前言 &#xff0…

C++ | Leetcode C++题解之第140题单词拆分II

题目&#xff1a; 题解&#xff1a; class Solution { private:unordered_map<int, vector<string>> ans;unordered_set<string> wordSet;public:vector<string> wordBreak(string s, vector<string>& wordDict) {wordSet unordered_set(w…

一款免费文件夹同步工具,旨在帮助用户在不同磁盘或文件夹间进行文件和目录的复制、移动和同步工作

一、简介 1、一款免费文件夹同步工具&#xff0c;旨在帮助用户在不同磁盘或文件夹间进行文件和目录的复制、移动和同步工作。这款工具因其简单易用、高度可定制化的特点&#xff0c;受到了广大用户的青睐。SyncToy支持多种同步模式&#xff0c;包括镜像同步、单向同步以及增量同…

AbstractMap和SimpleEntry

一、AbstractMap 位置&#xff1a;在java.util包 二、SimpleEntry 1、概述 继承了Map中的内部接口Entry<K,V> SimpleEntry<K,V>不仅继承了Map.Entry<K,V>&#xff0c;还继承了序列化的接口 2、构造方法 方法说明SimpleEntry(K key,V value)通过键值对初…

2024 年最新 Python 基于百度智能云实现文字识别 OCR 详细教程

文字识别 OCR 概述 文字识别OCR&#xff08;Optical Character Recognition&#xff09;提供多场景、多语种、高精度的文字检测与识别服务&#xff0c;多项ICDAR指标居世界第一。广泛适用于金融服务、财税报销、法律政务、保险医疗、快递物流、交通出行、教育培训等场景&#…

STM32项目分享:智能台灯系统

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板及元器件图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片&#xff1a; 哔哩哔哩视频链接&#xff1a; https://www.bilibili.c…

接口自动化Requests+Pytest基础实现

目录 1. 数据库以及数据库操作1.1 概念1.2 分类1.3 作用 2 python操作数据库的相关实现2.1 背景2.2 相关实现 3. pymysql基础3.1 整个流程3.2 案例3.3 Pymysql工具类封装 4 事务4.1 案例4.2 事务概念4.3 事务特征 5. requests库5.1 概念5.2 角色定位5.3 安装5.4 校验5.5 reques…

一个公用的数据状态修改组件

灵感来自于一项重复的工作&#xff0c;下图中&#xff0c;这类禁用启用、审核通过不通过、设计成是什么状态否什么状态的场景很多。每一个都需要单独提供接口。重复工作还蛮大的。于是&#xff0c;基于该组件类捕获组件跳转写了这款通用接口。省时省力。 代码如下&#xff1a;…