微信读书书城
x86/x64体系探索及编程
版权信息
加入书架
登录
查看
全部搜索结果
书城
目录
设置
加入书架
x86/x64体系探索及编程
邓志著
版权信息
序
前言
第一篇 x86基础
第1章 数与数据类型
1.1 数
1.2 数据类型
第2章 x86/x64编程基础
2.1 选择编译器
2.2 机器语言
2.3 Hello world
2.4 16位编程、32位编程,以及64位编程
2.5 编程基础
2.6 编辑与编译、运行
第3章 编写本书的实验例子
3.1 实验的运行环境
3.2 生成空白的映像文件
3.3 设置Bochs配置文件
3.4 源代码的基本结构
3.5 编译源代码
3.6 映像文件内的组织
3.7 使用merge工具
3.8 使用U盘启动真实机器
3.9 编写boot代码
3.10 总结
第4章 处理器的身份
4.1 测试是否支持CPUID指令
4.2 CPUID指令的术语及表达
4.3 基本信息与扩展信息
4.4 处理器的型号(family,model与stepping)
4.5 最大的物理地址和线性地址
4.6 处理器扩展状态信息
4.7 处理器的特性
4.8 处理器的Cache与TLB信息
4.9 MONITOR/MWAIT信息
4.10 处理器的long mode
第5章 了解Flags
5.1 Eflags中的状态标志位
5.2 IOPL标志位
5.3 TF标志与RF标志
5.4 NT标志
5.5 AC标志
5.6 VM标志
5.7 eflags寄存器的其他事项
第6章 处理器的控制寄存器
6.1 CR8
6.2 CR3
6.3 CR0
6.4 CR4
6.5 EFER扩展功能寄存器
第7章 MSR
7.1 MSR的使用
7.2 MTRR
7.3 MSR中对特殊指令的支持
7.4 提供processor feature管理
7.5 其他未列出来的MSR
7.6 关于MSR一些后续说明
第二篇 处理器的工作模式
第8章 实地址模式
8.1 真实的地址
8.2 real mode的编址
8.3 real mode的状态
8.4 段基址的计算
8.5 第1条执行的指令
8.6 实模式下的执行环境
8.7 实模式下的IVT
8.8 突破64K段限
8.9 A20地址线
第9章 SMM系统管理模式探索
9.1 进入SMM
9.2 SMM的运行环境
9.3 SMM里的中断
9.4 SMI的Back-to-Back响应
9.5 SMM里开启保护模式
9.6 SMM的版本
9.7 I/O指令的重启及Halt重启
9.8 SMM的退出
9.9 SMBASE的重定位
9.10 SMI处理程序的初始化
9.11 SMM的安全
9.12 测试SMI处理程序
第10章 x86/x64保护模式体系(上)
10.1 x86/x64的权限
10.2 保护模式下的环境
10.3 物理地址的产生
10.4 段式管理机制
10.5 段式管理的数据结构
10.6 开启保护模式
第11章 x86/x64保护模式体系(下)
11.1 物理页面
11.2 paging机制下使用的资源
11.3 32位paging模式(non-PAE模式)
11.4 PAE paging模式
11.5 IA-32e paging模式
11.6 TLB与Cache
11.7 page的内存cache类型
11.8 页的保护措施
第12章 Long-mode
12.1 x64体系的设计原则
12.2 开启long-mode
12.3 退出long-mode
12.4 long-mode的执行环境
12.5 long-mode的指令环境
12.6 64位模式与compatibility模式编程
第三篇 调试与性能监控
第13章 断点调试
13.1 Single-Step单步调试模式
13.2 Breakpoint调试模式
13.3 Memory和I/O地址调试模式
第14章 分支记录
14.1 检测处理器的家族和型号
14.2 初识Branch Record
14.3 IA32_DEBUGCTL寄存器
14.4 LBR stack
14.5 使用LBR捕捉branch trace
14.6 #DB异常下的LBR
14.7 IA-32e模式下的LBR stack
14.8 使用Single-step on branch功能
14.9 BTS(Branch Trace Store)机制
第15章 性能监控
15.1 性能监控机制
15.2 Performance monitoring机制的版本
15.3 Nehalem架构下的性能监控机制
15.4 PEBS(Precise Event Based Sampling)机制
15.5 使用Fixed计数器
15.6 Time-stamp counter与clock
第四篇 中断体系
第16章 中断与异常处理
16.1 Interrupt Source(中断源)
16.2 Exception Source(异常源)
16.3 Exception的恢复
16.4 中断vector
16.5 中断的屏蔽
16.6 IDTR寄存器
16.7 IVT(Interrupt Vector Table)
16.8 IDT(Interrupt Descriptor Table)
16.9 gate描述符
16.10 软件上的中断/异常处理流程
16.11 中断/异常调用中的任务切换
16.12 中断/异常调用返回
16.13 错误码
第17章 8259中断控制器
17.1 8259结构
17.2 8259编程
第18章 Local APIC体系
18.1 APIC体系概述
18.2 使用local APIC
18.3 local APIC寄存器
18.4 local APIC ID
18.5 local APIC版本寄存器
18.6 LVT寄存器
18.7 ICR(Interrupt Command Register)
18.8 LVT寄存器及ICR的设置
18.9 中断vector及priority
18.10 处理器的IPI机制
18.11 local APIC的中断处理
18.12 APIC timer
18.13 错误处理
18.14 LINT0与LINT1
18.15 Performance Monitoring
第19章 I/O APIC
19.1 I/O APIC寄存器
19.2 使用HPET(高精度定时器)
第五篇 浮点与SIMD指令环境
第20章 x87 FPU单元与MMX技术
20.1 x87 FPU执行环境
20.2 x87 FPU的异常
20.3 x87 FPU的异常处理机制
20.4 MMX指令环境
20.5 x87 FPU与MMX的状态
20.6 x87 FPU与MMX环境的设置
第21章 SSE系列指令环境
21.1 处理器的资源
21.2 SSE系列指令的异常
21.3 SSE系列指令的操作
21.4 SSE系列指令操作环境
附录A 参考资料
附录B 实验清单
是否关闭自动购买?
关闭后,阅读到本书未购买章节均需要手动购买确认。
取消
关闭
暂无笔记
本地导入书籍的 AI 翻译功能
仅支持付费会员使用
微信扫码开通付费会员
一键翻译全文