CSAPP:程序的机器级表示2 关键点:算术、逻辑操作 算术逻辑操作1.加载有效地址2.一元二元操作3.移位操作 算术逻辑操作 如图列出了x86-64的一些整数和逻辑操作,大多数操作分成了指令类(只有leaq没有其他的变种,addb、addw、addl、addq分别是字节加法、字加法、双字加法和四字 ...
分类:
移动开发 时间:
2018-11-15 22:30:52
阅读次数:
521
室友拉我做的... http://csapp.cs.cmu.edu/3e/labs.html ...
分类:
其他好文 时间:
2018-11-03 20:15:23
阅读次数:
318
在csapp中的新理解: (1)栈向下增长,栈顶元素的地址是所有栈中元素地址中最低的 (2)因为栈和程序代码以及其他形式的程序数据都是放在同一内存中,所以程序可以用标准内存寻址方法访问栈内的任意位置 (3)加载有效地址(load effective address)指令leap实际上是movq指令的 ...
分类:
编程语言 时间:
2018-11-01 22:27:34
阅读次数:
275
CSAPP:计算机系统漫游 关键点:上下文、程序运行、计算机系统抽象。 信息就是位+上下文一个程序的运行过程系统的硬件组成编译系统是如何工作的?一个程序的运行过程(c语言举例)计算机系统中的抽象 信息就是位+上下文 所谓信息(包括磁盘文件、内存中的程序、内存中存放的用户数据、以及网络上传输的数据), ...
分类:
移动开发 时间:
2018-10-12 23:39:26
阅读次数:
219
本次实验目的是完成一个简单的shell程序,解析命令行参数,理解并使用(fork,execve,waitpid)常见的多进程函数,了解linux进程组,以及前台进程和后台进程的相关概念,理解linux的信号机制(包括发送信号,接受信号,阻塞信号等)。实验提示以及详情请阅读CMU的实验指导:http: ...
分类:
移动开发 时间:
2018-10-07 15:34:39
阅读次数:
1824
6.23 平均旋转时间: T avg rotation = 1/2*T max rotation = 1/2*(60s/15000RPM)*1000ms/s≈2ms 平均传送时间: T avg transfer = 1/RPM * (1/(平均扇区数/磁道))*60s/1min = 1/15000R ...
分类:
移动开发 时间:
2018-10-06 16:46:37
阅读次数:
703
本文几个优化程序性能的方法出自CSAPP第五章,通过不断修改源代码,试图欺骗编译器产生有效的代码 我们先引入度量标准每元素的周期数(CPE),表示程序性能。 我们先定义一个数据结构 data_t 代表数据类型 以及常数IDENT和OP以便在后续的代码中进行不同的操作 我们首先看最初的代码版本,这是一 ...
分类:
其他好文 时间:
2018-09-21 20:25:29
阅读次数:
173
一、补码 1、补码的定义: 2、补码与其对应无符号数之间的关系 例如,当二进制数1011 是一个无符号数时,其对应的十进制是: 2^3 + 2^1 + 2^0 = 11 当二进制数1011 是一个有符号数时,此时1011为补码,所以其对应的十进制是: -2^3 + 2^1 + 2^0 = -5 从这 ...
分类:
移动开发 时间:
2018-09-08 16:54:57
阅读次数:
200
这个实验要求在5个有不同安全漏洞的代码上进行攻击,攻击分为两部分: Part 1:Code Injection Attacks(缓冲区溢出攻击) Part 2:Return-Oriented Programming(ROP攻击) 做题之前一定要仔细阅读write up:http://csapp.cs ...
分类:
移动开发 时间:
2018-08-19 21:56:41
阅读次数:
397