u> 有整理的PDF文档,可以点击这里下载
文章目录
第一章 计算机系统漫游
在Unix系统上,使用
linux> gcc -o hello hello.c
运行hello程序
从键盘读取hello命令
- 从键盘输入hello
- 通过I/O总线传送到总线接口
- 传送到寄存器
- 寄存器将保存到的数据通过I/O传送到主存储器
从磁盘加载可执行文件到内存
将输出字符串从存储器写到显示器
存储器层次结构
操作系统的抽象表示
进程的虚拟地址空间
Amdahl定律
计算机系统抽象
第二章 信息的表示和处理
linux> gcc -m32 prog.c
linux> gcc -m64 prog.c
大端法和小端法
逻辑右移:高位补0
算数右移:高位补符号位
逻辑、算数左移:低位补0
补码
浮点数
bias=2(阶码位数-1)-1
规格化数:阶码值=二进制表示的阶码值-bias
非规格化数:阶码值=1-bias 尾数不包含隐藏的1
第三章 程序的机器级表示
linux> gcc -Og -o p p1.c p2.c
//生成符合原始c代码整体结构的机器代码优化等级
linux> gcc -Og -S p.c
//产生一个汇编文件
linux> gcc -Og -c p.c
//编译并汇编
linux> ogjdump -d p.o
//反汇编成汇编代码
linux> gcc -Og -o prog main.c ma.c
//将main和ma合并成一个可重定位文件,并生成prog的可执行文件
数据格式
b w l q主要记这四个
64位机器中char为8字节
32位机器中char是4字节