信息安全系统设计基础期中学习总结
重难点知识梳理:


课本大章
第一章 计算机系统漫游
信息=位+上下文
第二章 信息的表示和处理
第二章整体即为进制转换,对于无符号数与有符号数之间的转换,以及OP操作,本质而言为模运算。
第三章 程序的机器级表示
汇编中循环的实现:
1.do-while循环
通用形式:
do
body-statement
while(test-expr);
循环体body-statement至少执行一次。
可以翻译成:
loop:
body-statement
t = test-expr;
if(t)
gotoloop;
即先执行循环体语句,再执行判断。
2.while循环
通用形式:
while(test-expr)
body-statement
GCC的方法是,使用条件分支,表示省略循环体的第一次执行:
if(!test-expr)
gotodone;do
body-statement
while(test-expr);done:
接下来:
t =test-expr;if(!t)
gotodone:
loop:
body-statement
t =test-expr;
if(t)
goto loop;done:
归根究底,还是要把循环改成do-while的样子,然后用goto翻译。
栈的操作:
对于一个栈首先进行栈的建立:push %ebp; mov %esp,%ebp
然后进行大小进行申请:sub $xx,%esp ,紧接着进行数据的存储
当进行调用时保存返回地址,即下一条指令的地址,调用call指令
即一个函数的栈帧。整体而言与c语言中函数的调用极其相似。
第四章 处理器体系结构
第四章整体总结见难点梳理。
第六章存储器层次结构
局部性原理:
- 时间局部性
- 空间局部性
存储器层次结构:每层存储设备都是下一层的“缓存”。
缓存不命中的种类
(1)强制性不命中/冷不命中
即第k层的缓存是空的(称为冷缓存),对任何数据对象的访问都不会命中。
(2)冲突不命中
由于一个放置策略:将第k+1层的某个块限制放置在第k层块的一个小的子集中,这就会导致缓存没有满,但是那个对应的块满了,就会不命中。
(3)容量不命中
当工作集的大小超过缓存的大小时,缓存会经历容量不命中,就是说缓存太小了,不能处理这个工作集。
高速缓存存储器:
高速缓存是一个高速缓存组的数组,它的结构可以用元组(S,E,B,m)来描述:
S:这个数组中有S=2^s个高速缓存组E:每个组包含E个高速缓存行
B:每个行是由一个B=2^b字节的数据块组成的m:每个存储器地址有m位,形成M=2^m个不同的地址
除此之外还有标记位和有效位:
有效位:每个行有一个有效位,指明这个行是否包含有意义的信息
标记位:t=m-(b+s)个,唯一的标识存储在这个高速缓存行中的块
组索引位:s
块偏移位:b
总结:
对于这门课程来说,我觉得知识点的联系非常重要。每学完一个章节,要进行一下复习,善于总结每个章节之间的联系,有助于我们更好地理解和学习这门课程。比如第三章和第四章,对于函数栈桢的每条指令,我们联系一下4.3节,各个指令的具体作用,有助于我们更好的理解%esp,%ebp的具体操作,使我们更好的理解栈桢的使用。

浙公网安备 33010602011771号