随笔分类 - 课程——CSAPP和计组实验
深入理解计算机系统和计算机组成与设计的一些实验
摘要:问题 线性反馈移位寄存器 Linear feedback shift register(LFSR),是指给定前一状态,将该输出的线性函数再用作输入的移位寄存器。异或运算是最常见的单比特线性函数:对寄存器的某些位进行异或操作后作为输入,再对寄存器中的各个比特进行整体移位。 赋给寄存器的初始值叫做“种子
阅读全文
摘要:问题 实现一个算法,检测单链表中是否有环,如果有环还要得到环的入口。 分析 判断是否有环:快慢指针法(也叫“龟兔赛跑”),慢指针每次移动一位,快指针每次移动两位,如果有环,他们一定会相遇。 求环的入口:到达相遇的位置时,将块指针移动到头指针的位置,每次移动一位,两者再次相遇的位置就是环的入口。 为什
阅读全文
摘要:MIPS的32个寄存器 (saved)子程序寄存器变量:子程序写入时必须保存 其值并在返回前恢复原值 (globe pointer)全局指针;一些运行系统维护这个指针以便 存取static和extern变量(全局变量) (return address)子程序的返回值 MIPS的指令 R型 I型 J型
阅读全文
摘要:引言 在计算机内存中,通常是以字节(Byte),也就是 8 个位(Bit)为基本存储单元(也有以 16 位为基本存储单元的)。对于跨越多个字节的数据类型(比如 int 长 4 个字节),如何在内存中对这些字节进行排序有两种常见的方法:大端法(Big-endian)和小端法(Little-endian
阅读全文
摘要:引言 随着科技的发展,尤其是在嵌入式领域,高性能、低功耗的处理器成为众多厂商追逐的目标,但是由于技术和工艺的瓶颈,试图在单核处理器上达到这样的目标变得越发困难,于是人们提出了多核处理器的概念。多核处理器的核心思想是一个处理器中包含若干个核(或线程),所有核(或线程)之间共享 IO、Cache、内存等
阅读全文
摘要:准备 通过Logisim的官网下载适合你机器的Logisim的软件,启动Logisim应用程序(Logisim可能有点bug,如果程序运行诡异,可能内部已经奔溃,最好的解决方法是重新启动它)。 Logisim 高阶使用 先介绍两个有用的Logisim的功能,对后续实验会很有帮助。 Tunnel Tu
阅读全文
摘要:一、判断单链表是否存在环 这个问题有很多方法,最容易想到的就是记录每个节点记录的次数。这里也介绍的是另一种简单而常见的方法 快慢指针法: 定义两个指针slow, fast。slow指针一次走1个结点,fast指针一次走2个结点。如果链表中有环,那么慢指针一定会再某一个时刻追上快指针(slow ==
阅读全文
摘要:这是一个关于机器级的整数、浮点数表示和位运算的实验。要求用给定的操作符、尽可能少的操作数去实现对应的函数功能。 完整的实验包:链接: https://pan.baidu.com/s/1xUBi3XDlidPQFNexbjXoLw 密码: 2333 以下是全部函数的代码:
阅读全文