当前位置:文档之家› 深入理解计算机系统勘误

深入理解计算机系统勘误

P89 练习题2.92注释中
Compute -f
Compute|f|
中文版勘误
darrenhp
2011.02.28
P92 练习题2.12
A. x & ?0xFF
A. x &0xFF
中文版勘误
李志杰
2011.08.18
P99 练习题2.44答案F.
补码和无符号乘法有相同的位级行为
补码和无符号加法有相同的位级行为
操作应该先改变大小
英文版勘误
David Ramsey
2011.04.11
P119 练习题3.6
leal 0xA(,%eax,4),%edx
leal 0xA(,%ecx,4),%edx
中文版勘误
赵亮
2011.07.27
P119 3.5.2第一段第三行
减一运算法
减一运算符
中文版勘误
Ji Bin
2011.02.28
v = true-expr;
goto done;
false:
v = else-expr;
done:
v =then-expr;
goto done;
false:
v = else-expr;
done:
英文版勘误
Lei Ma
2010.09.27
P150 图3-22 b)
箭头指向0x080483e1上方
箭头应该指向0x080483e1处
变量q还可以是unsigned long类型的,因此一共有八种合法的函数原型。另外四种是:
void incrprob_s_ul(int x, unsigned long *q, int *t);
void incrprob_u_ul(unsigned x, unsigned long *q, int*t);
Hale Waihona Puke 中文版勘误gnu_emacser
2011.07.24
P113 图3-3 最后一行,第一列
寄存器
存储器
中文版勘误
Ji Bin
2011.07.27
P117 “给C语言初学者”下第一段第二行
指令1和2从存储器当中
指令1从存储器当中
英文版勘误
Ji Bin
2010.04.11
P118 第二行
操作应该先改变符号
Arow[j]被初始化为&A[i][0]
Arow被初始化为&A[i][0]
中文版勘误
Ji Bin
2011.02.28
P171 第11行
例如,3、6、7节中
例如,3.6.7节中
中文版勘误
王泰格
2011.12.6
P173 第12行
操作符用于指针的间接引用
运算符*用于指针的间接引用
中文版勘误
Anders Cui
P120 3.5.3节,第一句话
第二项给出的是要移位的位数
第二项给出的是要移位的数值
中文版勘误
王泰格
2011.03.28
P123 第5行
除数
被除数
英文版勘误
吴旭东
2011.01.07
P124 图3-10上倒数第三行
除了他们只设置条件码而改变目的寄存器的值
除了他们只设置条件码而不改变目的寄存器的值
中文版勘误
有八种不同的函数声明都会得到同样的代码:返回值类型可以是int或者unsigned,参数p可以是int *或者unsigned *,以及参数x可以是int或者unsigned。这些选择是相互独立的。
英文版勘误
Qiangqiang Luo
2011.08.28
P222 练习题3.33答案B
将栈指针加了40
深入理解计算机系统,第二版
Computer Systems: A Programmer's Perspective, Second Edition (CS:APP2e)
发现日期
页码行号
原文
修改后
指出人
2011.10.13
P15 1.线程级并发,第二行
时间共享
分时(time-sharing)
中文版勘误
unsignedreplace_byte(unsigned x, unsigned char b, int i);
中文版勘误
Darren
2011.05.24
P81 家庭作业2.60
将“强制类型转换,无论是现实的还是隐式的。”从“禁止使用”类别移至“允许的运算”类别
英文版勘误
Yu Tanaka
2011.05.24
英文版勘误
David O’Hallaron
2010.11.30
P154 倒数第三段
这些参数的位置也从相对于%esp的旧值+4和0的位置移到了相对于%ebp的新值+12和+8的位置。
这些参数的位置也从相对于%esp的旧值+4和0的位置变成了相对于%ebp的新值+12和+8的位置。
中文版勘误
黎规好
2011.02.28
王泰格
2010.11.01
P178 练习题3.43 第四行
寄存器%edi等于0x2,寄存器%esi等于0x3。
寄存器%edi等于0x3,寄存器%esi等于0x2
英文版勘误
Mustafa Kazdagli
2011.08.21
P180 第三段第三行
operatioin
operation
中文版勘误
Ji Bin
P202 参考文献说明,第二段
Applicatioin
Application
中文版勘误
花明月暗
2012.07.05
P215 练习题3.12答案
num_t也有可能是long long类型的。对此,C语言标准指明乘法会先把x转换成long long类型,所以这个乘法是基于有符号运算的。不过有趣的是,结果的位级表示是和无符号的情况一样的。要看到这个,注意B部分中当把64位有符号数y分成32位值y_h和y_l时,我们应该把y_h看做一个有符号数,而把y_l看做无符号的。因此对于x*y_l这个64位乘积应该用无符号乘,而x*y_h的低32位对无符号和有符号运算来说,都是一样的。
P46 公式2-8
x<2w-1
u<2w-1
中文版勘误
华章出版社
2011.01.07
P47 第二行
65563+-12345=53191
65536+-12345=53191
中文版勘误
华章出版社
2011.03.02
P56 练习题2.27下面
丹麦数学家Niels Henrik Abel
挪威数学家Niels Henrik Abel
2012.04.03
P173 中间代码
(int) (*fp)(int, int *);
int(*fp)(int, int *);
英文版勘误
Ronald Greenberg
2011.02.28
P177 第一张表格下第四行
但是调用者也不能依靠这个寄存器的完整性
但是调用者也不能依赖这个寄存器的正确性
中文版勘误
P68 2.4.1节第二段第一行
小数点左边的数字的权是10的正幂
小数点左边的数字的权是10的非负幂
英文版勘误
Dong Han
2011.08.03
P68 2.4.1节第三段第一行
b-n-1
b-n+1
英文版勘误
Dong Han
2011.08.03
P68 公式2-19下面一行
点左边的位的权是2的正幂
点左边的位的权是2的非负幂
英文版勘误
Qiangqiang Luo
2011.10.19
P217 练习题3.19答案
我们可以看到,实际上计算13!的时候,就已经溢出了,因为1,932,053,504 / 13 = 148,619,500.31。
英文版勘误
Richard Callahan
2012.07.31
P221 练习题3.32答案
即使处理器完全一样,但是运行不同的操作系统,也会有不同的编码规则
中文版勘误
张岩
2011.06.05
P33 DATA:BOOL中 第4行
a & (b . c)
a & (b|c)
中文版勘误
Darren
2011.11.18
P33 DATA:BOOL中 第5行
(a . b) & (a . c)
(a|b)& (a|c)
英文版勘误
Dag Henning Liodden Sørbø
2011.07.13
P57 公式2-13上一行
y ≤ 2w-1
y<2w-1
中文版勘误
Ji Bin
2011.01.07
P57 公式2-13下一行
xw-12w+x
xw-12w+x
中文版勘误
华章出版社
2011.02.01
P57 图2-23标题中
当它大于2w-1+1时,产生正溢出
华章出版社
2011.07.28
P127 倒数第二段倒数第二行
参加图3-11
参见图3-11
中文版勘误
Ji Bin
2011.08.01
P134 练习题3.20 C中
参考图3-14b
参考图3-14c
英文版勘误
Ji Bin
2010.11.18
P142 对于传统的IA32,编译器产生的代码具有以下抽象代码所示的形式
中文版勘误
刘宗浩
2011.04.24
相关主题