第1章 一切都在计划之中——真正理解计算机的工作原理
1.1 完美的周六计划
1.1.1 步骤和测试
1.1.2 决定总是具有二元性
1.1.3 计算机像我们一样思考
1.2 如果这是真的
1.3 将汇编语言编程比作方块舞
1.4 将汇编语言编程比作棋盘游戏
1.4.1 代码和数据
1.4.2 地址
1.4.3 总结
第2章 外星人基地——理解二进制和十六进制
2.1 新数学怪兽的回归
2.1.1 使用火星文计数
2.1.2 剖析火星数字
2.1.3 数基的本质
2.2 八进制:鬼精灵如何偷走8和
2.3 十六进制:解决数字短缺问题
2.4 从十六进制到十进制以及从十进制到十六进制
2.4.1 从十六进制到十进制
2.4.2 从十进制到十六进制
2.5 练习!练习!练习!
2.6 十六进制算术
2.6.1 列和进位
2.6.2 减法和借位
2.6.3 跨多列借位
2.6.4 重点是什么?
2.7 二进制
2.7.1 二进制值
2.7.2 为什么是二进制
2.8 十六进制作为二进制的简写
2.9 准备计算
第3章 揭开面纱——了解计算机的真实面貌
3.1 RAX寄存器,我们几乎不了解
3.2 开关、晶体管和内存
3.2.1 如果敌方陆路来袭,则点亮一盏灯
3.2.2 晶体管开关
3.2.3 令人难以置信的比特缩小现象
3.2.4 随机访问
3.2.5 内存访问时间
3.2.6 字节、字、双字和四字
3.2.7 排成一排的精美芯片
3.3 CPU和装配线
3.3.1 与内存对话
3.3.2 搭乘数据总线
3.3.3 寄存器
3.3.4 装配线
3.4 遵循计划的盒子
3.4.1 获取并执行
3.4.2 CPU的内部结构
3.4.3 改变路线
3.5 什么与如何:架构和微架构
3.5.1 不断演变的架构
3.5.2 地下室的秘密机器
3.6 工厂经理
3.6.1 操作系统:转角办公室
3.6.2 BIOS:软件不“软”
3.6.3 多任务魔法
3.6.4 提升至内核
3.6.5 内核爆炸
3.6.6 计划
第4章 寻址、寻址、寻址——寄存器、内存寻址及了解数据的位置
4.1 内存模型的乐趣
4.1.11 6位能“买到”64KB
4.1.2 兆字节(MB)的本质
4.1.3 向后兼容和虚拟86模式
4.1.41 6位的视野限制
4.2 分段的本质
4.2.1 一条地平线,而不是一个具体位置
4.2.2 使用16位寄存器生成20位地址
4.3 分段寄存器
4.3.1 分段寄存器和x
4.3.2 通用寄存器
4.3.3 寄存器的高位和低位
4.3.4 指令指针
4.3.5 标志寄存器
4.3.6 数学协处理器及其寄存器
4.4 四种主要的汇编编程模型
4.4.1 实模式平面模型
4.4.2 实模式分段模型
4.4.33 2位保护模式平面模型
4.4.46 4位长模式编程模型
第5章 汇编的正确方式——汇编语言程序的开发过程
5.1 编程的96种方法
5.2 文件及其内容
5.2.1 二进制文件与文本文件
5.2.2 使用GHex十六进制编辑器查看二进制文件内部
5.2.3 解释原始数据
5.2.4 字节顺序
5.3 输入文本,输出代码
5.3.1 汇编语言
5.3.2 注释
5.3.3 当心“只写源代码”!
5.3.4 目标代码、链接器和库
5.3.5 可重定位性
5.4 汇编语言的开发过程
5.4.1 工作目录的规则
5.4.2 编辑源代码文件
5.4.3 汇编源代码文件
5.4.4 汇编器错误
5.4.5 回到编辑器
5.4.6 编译器警告
5.5 链接目标代码文件
5.5.1 链接器错误
5.5.2 测试EXE文件
5.5.3 错误与缺陷
5.5.4 调试器和调试
5.6 走进汇编语言的世界
5.6.1 安装软件
5.6.2 步骤1:在编辑器中编辑程序
5.6.3 步骤2:使用NASM汇编程序
5.6.4 步骤3:使用ld链接程序
5.6.5 步骤4:测试可执行文件
5.6.6 步骤5:在调试器中观察它的运行
第6章 一个可使用工具的立足之地——Linux和塑造你的工作方式的工具
6.1 集成开发环境(IDE)
6.2 SASM简介
6.2.1 配置SASM
6.2.2 SASM的字体
6.2.3 使用编译器链接
6.2.4 SASM速览
6.2.5 SASM的编辑器
6.2.6 SASM对你的代码有何要求
6.3 Linux和终端
6.3.1 Linux控制台
6.3.2 Konsole中的字符编码
6.3.3 三个标准UNIX文件
6.3.4 I/O重定向
6.3.5 简单文本过滤器
6.3.6 使用SASM内部的标准输入和标准输出
6.3.7 使用转义序列进行终端控制
6.3.8 为什么不使用GUI应用程序
6.4 使用LinuxMake
6.4.1 依赖
6.4.2 当文件是最新的
6.4.3 依赖链
6.4.4 调用Make
6.4.5 为Make创建自定义按键绑定
6.4.6 使用touch强制构建
6.5 使用SASM进行调试
第7章 遵循你的指令——近距离观察机器指令
7.1 构建自己的沙箱
7
展开