收藏 分享(赏)

深入理解计算机系统复习参考.doc

上传人:精品资料 文档编号:10744217 上传时间:2020-01-04 格式:DOC 页数:12 大小:386.50KB
下载 相关 举报
深入理解计算机系统复习参考.doc_第1页
第1页 / 共12页
深入理解计算机系统复习参考.doc_第2页
第2页 / 共12页
深入理解计算机系统复习参考.doc_第3页
第3页 / 共12页
深入理解计算机系统复习参考.doc_第4页
第4页 / 共12页
深入理解计算机系统复习参考.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、深入理解计算机系统复习参考1、字节序问题-大端法和小端法字节序,顾名思义字节的顺序,是大于一个字节类型的数据在内存中的存放顺序。字节序分为两类:大端法 Big-Endian 和小端法 Little-Endian。定义如下:a) Little-Endian 就是低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。b) Big-Endian 就是高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。假设变量 x 类型为 int,位于地址 0x100 处,有一个十六进制值为 0x0123456。地址范围从 0x1000x103 的字节顺序来自于机器的类型:大端法: 0x100 0x10

2、1 0x102 0x103. 01 23 45 67 .小端法: 0x100 0x101 0x102 0x103. 67 45 23 01 .而对于字符,大小为一个字节,不存在字节序问题,均为顺序输出。又其以ASCII 码存储,所以注意以十六进制输出时的类型转换。字母“A”“Z”的 ASCII 码为 0x410x5A。字符串“ABCDEF”输出为 41 42 43 44 45 46。2、C 中的位运算1)位运算C 语言提供了按位与(Bitwise AND)运算符&、按位或(Bitwise OR)运算符|和按位取反(Bitwise NOT)运算符,此外还有按位异或(Bitwise XOR)运算符

3、。位运算2)左移右移移位运算符(Bitwise Shift)包括左移。a)左移将一个整数的各二进制位全部左移若干位,例如 0xcfffffff32 得到 0x33fffffc:右移运算最低两位的 11 被移出去了,最高两位又补了两个 0,其它位依次右移两位。和左移类似,移动的位数也必须小于左操作数的总位数,否则结果是Undefined。在一定的取值范围内,将一个整数右移 1 位相当于除以 2,小数部分截掉。当操作数是有符号数时,右移运算的规则比较复杂: 如果是正数,那么高位移入 0 如果是负数,那么高位移入 1 还是 0 不一定,这是Implementation-defined 的。对于 x8

4、6 平台的 gcc 编译器,最高位移入 1,也就是仍保持负数的符号位,这种处理方式对负数仍然保持了“右移 1 位相当于除以 2”的性质。3)掩码如果要对一个整数中的某些位进行操作,怎样表示这些位在整数中的位置呢?可以用掩码(Mask)来表示。比如掩码 0x0000ff00 表示对一个 32 位整数的815 位进行操作。4)异或运算的一些特性1、一个数和自己做异或的结果是 0。2、从异或的真值表可以看出,不管是 0 还是 1,和 0 做异或值不变,和 1 做异或得到原值的相反值。3、如果 a1 a2 a3 . an的结果是 1,则表示 a1、a 2、a 3.an之中 1的个数为奇数个,否则为偶数

5、个。这条性质可用于奇偶校验(Parity Check)。4、x x y = y,因为 x x = 0,0 y = y。3、整数在计算机中的存储在计算机系统中,整数一律用补码来表示(存储)。无符号的整数就没有原码、反码和补码。(所有位均为数值位)对于有符号数:原码为直接的二进制表示,用一个数的最高位存放符号(0 为正,1 为负),其余为数值位。正数的原码,反码,补码都一样。负数,反码是对它的原码(符号位除外)各位取反而得到的。补码是对它的原码(除符号位外)各位取反,并在未位加 1 而得到的。例:若机器数是 16 位:十进制数 17 的原码、反码与补码均为: 0000000000010001十进制

6、数 -17 的原码、反码与补码分别为:1000000000010001、 1111111111101110、11111111111011114、扩展一个数字的位表示5、操作数指示符6、加载有效地址%eax-0x100-0xFF%eax-0x100-0x100+0x4=0x104-0xAB 0x100+0x3=0x103-0x103+0x9=0x10c-0x110x1*4+0xFC=0x10-0xFF0x100+0x3*4=0x10-0x117+x+8*x9+x+2+y7、一元和二元操作P125 改变状态寄存器 P127 3.11 P131 3.9 3.12 均涉及代码翻译,大家自己看书体会一下

7、。8、寄存器使用惯例根据惯例, 寄存器%eax, %ecx, %edx 被划分为由调用者保存的寄存器。寄存器%ebx, %esi, %edi 被划分为由被调用者保存的寄存器。此外必须保持寄存器%ebp 和%esp。返回值存放于%eax 中。P148 代码需理解9、高速缓存的工作方式0x100-0xFF-0xFF+0x1=0x1000x100+0x4=0x104-0xAB-0x3=0xA80x100+0x3*0x4=0x10c-0x11*0x10=0x1100x100+0x8=0x108-0x13+0x1=0x140x1-0x1=00x100-0x3=0xFDE=2 B=4CO=log2 4E=

8、2 S=8CI=log2 8块 偏 移组 索 引标 记0x0E34-0 1110 0011 0100000x01010x5011100010x715 组,标记位 71 有效位是 1命中块偏移 0 返回 0B5 组,标记位 6E 有效位是 0不命中块偏移 1 返回-1 组,标记位 FF 不存在 不命中无返回10、虚拟存储器组 011 标记 3200110010 偏移 00、01、10、1100110010 011 000 0110 0100 11000x064c 其他同理虚拟地址直接转换 00 0011 1010 10010x0E 0x20x03NN0x11PPN 查下表 PPO=VPO010001 1010 010x010x0A0x11N

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报