主要涉及计算机中数的表示法: (1)整数: two's complement,即补码表示法 假设用N位bit表示整数w: 其中最左边一位为符号位,符号位为0,表示正数,为1表示负数. (2)浮点数: 浮点数采用类似科学计数法的方式 以float为例:编码分为三部分:首位为符号位S,然后是8位指数位exp,最后是23位有效数位frac. 即: x = S*M*2^E 例如: -1.10110 × 2^10 其中: 通常 E = exp - bais, 对于float, bais = 2^(8-1)…
写在前面 之前考研的时候csapp的书有刷过5,6遍,所以对书本知识还算比较了解.恰逢最近在学c++的时候,顺带刷一下大名鼎鼎的csapp实验. 0. 环境准备 最好准备一个纯净的Linux系统这里建议使用docker 构建一个centos或者 ubuntu系统 实验资料的下载 ​CS:APP3e, Bryant and O'Hallaron docker上的环境搭建请参考下面的文章 CSAPP:Lab0-搭载环境 拉取centos系统 docker pull centos 建立目录挂载实现文件…
CSAPP:datalab实验记录 bitXor /* * bitXor - x^y using only ~ and & * Example: bitXor(4, 5) = 1 * Legal ops: ~ & * Max ops: 14 * Rating: 1 */ 这道题的意思就是限定符号实现异或.我们很容易就知道: \[a \oplus b = \overline a b + a \overline b \] 再化简以下(逻辑代数的知识): \[\overline a b + a…
所有实验文件可见github 计算机系统实验整理 由于word文件没有保存,因此如需参考此实验,请直接访问github文件…
所有实验文件可见github 计算机系统实验整理 实验报告 实 验(七) 题 目 TinyShell 微壳 计算机科学与技术学院 目 录 第1章 实验基本信息 - 4 - 1.1 实验目的 - 4 - 1.2 实验环境与工具 - 4 - 1.2.1 硬件环境 - 4 - 1.2.2 软件环境 - 4 - 1.2.3 开发工具 - 4 - 1.3 实验预习 - 4 - 第2章 实验预习 - 6 - 2.1 进程的概念.创建和回收方法(5分) - 6 - 2.2信号的机制.种类(5分) - 6 -…
本次为一次计算机系统实验,就是使用一些基本的运算符来实现函数功能. ps做这些题让我想起大一上学期刚学二进制时被鹏哥支配的痛苦. 知识准备: 1.负数等于正数取反加一. 2.左移一位相当于将这个数扩大两倍,右移两位相当于将这个数缩小两倍 3.符号位向右移动后,正数补0,负数补1. 4.负数补码最高位是1,正数补码最高位是0 5. 32位正数取值为 最大:01111111 11111111 11111111 11111111 最小:10000000 00000000 00000000 000000…
CSAPP lab3 bufbomb-缓冲区溢出攻击实验(上)smoke fizz CSAPP lab3 bufbomb-缓冲区溢出攻击实验(下)bang boom kaboom 栈结构镇楼 这里先给出getbuf的反汇编代码和栈结构,方便下面的使用. 栈结构: 第2关:bang 构造攻击字符串作为目标程序输入,造成缓冲区溢出,使目标程序能够执行bang函数:并且要篡改全局变量global_value为cookie值,使其判断成功.但我们知道全局变量放置在bss节或data节,并不存放在栈中,前…
前言 完成这个实验大概花费一天半的时间,看了很多大佬的博客,也踩了很多的坑,于是打算写一篇博客重新梳理一下思路和过程,大概会有两篇博客吧. CSAPP lab3 bufbomb-缓冲区溢出攻击实验(上)smoke fizz CSAPP lab3 bufbomb-缓冲区溢出攻击实验(下)bang boom kaboom lab3要我们做这样一件事情,修改一个正在运行程序的stack以达到预期的目的.具体的修改方式是这样的:程序定义了一个局部C风格字符串变量,注意局部变量是放在stack上面的,所以…
所有实验文件可见github 计算机系统实验整理 实验报告 实 验(一) 题 目 Linux下C工具应用 专 业 计算机学院 学 号 班 级 学 生 指 导 教 师 实 验 地 点 实 验 日 期 计算机科学与技术学院 目 录 第1章 实验基本信息 - 4 - 1.1 实验目的 - 4 - 1.2 实验环境与工具 - 4 - 1.2.1 硬件环境 - 4 - 1.2.2 软件环境 - 4 - 1.2.3 开发工具 - 4 - 1.3 实验预习 - 4 - 第2章 WINDOWS 软硬件系统观察分…
前言 本篇博客将会剖析 CSAPP - DataLab 各个习题的解题过程,加深对 int.unsigned.float 这几种数据类型的计算机表示方式的理解. DataLab 中包含下表所示的 12 个习题,其中 9 个和整数有关,3个和单精度浮点数有关. 函数名 功能描述 分数 操作符 bitXor(x, y) 使用 & 和 ~ 实现异或操作 1 14 tmin() 补码的最小值 1 14 isTmax(x) x 是否为补码的最大值 1 10 allOddBits(x) x 的奇数位是否全为…