CSAPP第二章中给出了一个帮助我们观察数据的位模式的函数 show_bytes函数,具体实现如下: 写完后我立刻尝试跑了一下一个int类型的数字 VS2017运行结果为: 看上去是没什么问题的。于是我又试了一下浮点数的表示: VS2017运行结果为: 输出了14个十六进制数字,多输出了6个十六进制 ...
分类:
移动开发 时间:
2019-11-19 17:11:29
阅读次数:
149
写程序最主要的目标就是使它在所有可能的情况下都正确工作,另一方面,在很多情况下,让程序运行得很快也是一个重要的考虑因素。
编写高效程序需要做到以下两点:
1. 选择一组合适的算法和数据结构
2. 编写编译器能够有效优化以转换成高效可执行代码的源代码 ...
分类:
移动开发 时间:
2019-11-04 09:44:21
阅读次数:
64
[TOC] 屏幕截图 考察内容 本次lab主要考察对栈帧的掌握程度~~以及对Ctrl+F的掌握程度~~。 各题答案 level1 level2 level3 level4 level5 解题思路 level1 任务 利用缓冲区溢出使getbuf函数结束后返回touch1。 思路 将可执行文件ctar ...
分类:
移动开发 时间:
2019-10-29 00:27:19
阅读次数:
599
@ "TOC" 实验要求 给出15个函数,规定了实现每个函数需要的逻辑和算术操作符(规定数量)。 只能使用规定的操作符! ? & ? | + 不能使用循环或者条件语句 不能使用超过8位的常数(ff) 实现代码 1、pow2plus1 7、negate 8、isAsciiDigit 9、conditi ...
分类:
移动开发 时间:
2019-10-25 20:19:27
阅读次数:
170
看的挺快,从第四章看完到现在二十一章,明后天可以看完了。加上同时学的mooc上的数字逻辑电路以及汇编语言,csapp还有各种的知识可以串在一起。 不说了,看自己还记得多少: 第五章 绕过拐角的通信。父母发现了你们的小勾当,你们不能对门了,于是你和你朋友在各自的房子里架齐了两个电灯泡系统,照样可以发编 ...
分类:
编程语言 时间:
2019-10-19 12:55:20
阅读次数:
122
在csapp第五章5.2中提到了循环展开(loop unrolling)。这里展开一下为什么循环展开可以提升程序的效率。 以书中计算数组和的两段代码为例: 1.未展开: void psum1(float a[], float p[], long int n) { long int i; p[0] = ...
分类:
其他好文 时间:
2019-10-04 09:23:44
阅读次数:
122
[TOC] 1 整数表示 编码整数有2种方式: 一种只能表示非负数(大于0的数), 另一种能够表示负数、零和正数. (1) 整型数据类型: C和C++都支持有符号(默认)和无符号数, Java只支持有符号数. (2) 无符号数的编码: 无符号数的二进制表示又一个很重要的属性: 每个介于 0 ~ 2^ ...
分类:
移动开发 时间:
2019-09-16 00:23:48
阅读次数:
105
第八章 异常控制流ECF 8.1 异常 Exception 异常是异常控制流的一种形式,他一部分由硬件实现,一部分由操作系统实现。 在任何情况下,当处理器检测到有事情发生时,他就会通过一张叫做异常表(exception table)的跳转表,进行一个简介过程调用(异常),到一个专门用来处理这类事件操 ...
分类:
移动开发 时间:
2019-09-09 22:49:18
阅读次数:
126
缘由 两个月前的一天深夜,熟睡的我被呼啦啦的一声惊醒,正要往床底下钻,透过皎洁月光看见了散落一地的书,原来是书架塌了。 作为只能租住小房间的北漂儿,当初只买了个便宜的塑料书架放书,原本就习惯于等亚马逊活动囤书,再加上单位时不时发放的当当购书卡,每次三本两本的,不知不觉就买书如山倒了。知乎、豆瓣里被人 ...
分类:
移动开发 时间:
2019-07-07 16:05:59
阅读次数:
209
完成这个实验大概花费一天半的时间,看了很多大佬的博客,也踩了很多的坑,于是打算写一篇博客重新梳理一下思路和过程,大概会有三篇博客吧。 实验目的: 通过缓冲区溢出攻击,使学生进一步理解IA-32函数调用规则和栈帧结构。 实验技能: 需要使用objdump来反汇编目标程序,使用gdb单步跟踪调试机器代码 ...
分类:
移动开发 时间:
2019-05-04 16:15:53
阅读次数:
733