计算机组成原理复习笔记

前言

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

题型

一、进制转换

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

(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 小时前
嵌入式学习 | STM32裸板驱动开发(Day01)入门学习笔记(超详细完整版|点灯实验 + 库函数代码 + 原理全解)
linux·驱动开发·笔记·stm32·学习
largecode1 小时前
能不能让座机号码显示“XX公司”那样的认证名称?申请号码认证方法
经验分享·笔记·音视频·课程设计·oneapi·segmentfault·微信开放平台
Hua-Jay1 小时前
OpenCV联合C++/Qt 学习笔记(十七)----凸包检测、直线检测及点集拟合
c++·笔记·qt·opencv·学习·计算机视觉
是喵斯特ya2 小时前
红日内网靶场1环境搭建
笔记
中屹指纹浏览器2 小时前
2026浏览器插件扩展安全风险溯源与环境隔离防护规范
经验分享·笔记
宵时待雨3 小时前
回溯算法专题1:递归
数据结构·c++·笔记·算法·leetcode·深度优先
今儿敲了吗3 小时前
面向对象(三)——设计模式
笔记·设计模式
是喵斯特ya3 小时前
红日内网靶场1渗透笔记
笔记·安全
一只机电自动化菜鸟3 小时前
一建机电备考笔记(34)焊接技术(设备与材料1)(含考频+题型)
笔记·学习·职场和发展·生活·学习方法
chushiyunen3 小时前
知识图谱笔记
人工智能·笔记·知识图谱