计算机组成原理复习笔记

前言

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

题型

一、进制转换

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

(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

九、一些重要概念的考察

例题

一、据汇编指令写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 后续应该还会再编辑一下这篇笔记的概念这部分 剩下的大家自己加油^^

相关推荐
清木!39 分钟前
数据仓库详解
笔记
大筒木老辈子6 小时前
Linux笔记---协议定制与序列化/反序列化
网络·笔记
草莓熊Lotso6 小时前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
我爱挣钱我也要早睡!9 小时前
Java 复习笔记
java·开发语言·笔记
汇能感知14 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun14 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao14 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾14 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT15 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
ST.J15 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记