计算机组成原理复习笔记

前言

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

题型

一、进制转换

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

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

相关推荐
红色的山茶花1 小时前
YOLOv8-ultralytics-8.2.103部分代码阅读笔记-block.py
笔记·深度学习·yolo
坚硬果壳_1 小时前
《硬件架构的艺术》笔记(六):流水线的艺术
笔记·硬件架构
夜流冰3 小时前
工程师 - 智能家居方案介绍
笔记
垂杨有暮鸦⊙_⊙4 小时前
阅读《先进引信技术的发展与展望》定装和探测部分_笔记
笔记
weixin_478689764 小时前
【二分查找】【刷题笔记】——灵神题单1
笔记
醉陌离5 小时前
渗透测试学习笔记—shodan(2)
笔记·学习
双手插兜-装高手5 小时前
Linux - 线程基础
linux·c语言·笔记
澜世6 小时前
2024小迪安全基础入门第二课
网络·笔记·安全
清酒伴风(面试准备中......)6 小时前
操作系统基础——针对实习面试
笔记·面试·职场和发展·操作系统·实习
饭碗、碗碗香6 小时前
OpenCV笔记:图像去噪对比
人工智能·笔记·opencv·计算机视觉