注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计程序设计综合x86/x64体系探索及编程

x86/x64体系探索及编程

x86/x64体系探索及编程

定 价:¥119.00

作 者: 邓志
出版社: 电子工业出版社
丛编项:
标 签: 计算机理论

ISBN: 9787121181764 出版时间: 2012-10-01 包装: 平塑勒单衬
开本: 16开 页数: 840 字数:  

内容简介

  《x86/x64体系探索及编程》是对Intel手册所述处理器架构的探索和论证。全书分五大部分,对多个方面对处理器架构相关的知识进行了梳理介绍。书中每个章节都有相应的测试实验,所运行的实验例子都可以在真实的机器上执行。通过阅读本书,读者应能培养自己动手实验的能力。如果再有一些OS方面的相关知识,基本上就可以写出自己简易的OS核心。

作者简介

  邓志,1977年生于广东,在银行工作十余年,现自由职业者。对计算机有一股热情和蛮劲,善于思考,特别喜欢琢磨底层架构。熟悉C语言,并且精通x86/x64平台的汇编语言与机器指令系统,能用汇编写简易的OS核心。

图书目录

第一篇 x86基础第1章  数与数据类型      21.1  数   21.1.1  数字   21.1.2  二进制数   31.1.3  二进制数的排列      31.1.4  十六进制数      51.1.5  八进制数与十进制数      51.2  数据类型      61.2.1  integer数   61.2.2  floating-point数 91.2.3  real number(实数)与NaN(not anumber)      111.2.4  unsupported编码值   141.2.5  浮点数精度的转换   151.2.6  浮点数的溢出   171.2.7  BCD码      201.2.8  SIMD数据 21第2章 x86/x64编程基础  232.1  选择编译器   232.2  机器语言      242.3  Hello world  252.3.1  使用寄存器传递参数      262.3.2  调用过程   272.3.3  定义变量   272.4  16位编程、32位编程,以及64位编程   282.4.1  通用寄存器      282.4.2  操作数大小      302.4.3  64位模式下的内存地址   302.4.4  内存寻址模式   312.4.5  内存寻址范围   342.4.6  使用的指令限制      342.5  编程基础      342.5.1  操作数寻址      352.5.2  传送数据指令   392.5.3  位操作指令      452.5.4  算术指令   472.5.5  CALL与RET指令  482.5.6  跳转指令   482.6  编辑与编译、运行      48第3章  编写本书的实验例子    503.1  实验的运行环境   503.2  生成空白的映像文件   523.2.1  使用nasm编译器生成     523.2.2  使用bximage工具    523.3  设置bochs配置文件    533.4  源代码的基本结构      543.5  编译源代码   553.6  映像文件内的组织      553.7  使用merge工具   563.7.1  merge的配置文件    573.7.2  执行merge命令      573.8  使用U盘启动真实机器      583.8.1  使用merge工具写U盘   583.8.2  使用hex编辑软件写U盘      593.9  编写boot代码     603.9.1  LBA转换为CHS     623.9.2  测试是否支持int13h扩展功能      633.9.3  使用int13h扩展读磁盘  643.9.4  最后看看load_module()   643.10  总结    66第4章  处理器的身份      674.1  测试是否支持CPUID指令674.2  CPUID指令的术语及表达  684.3  基本信息与扩展信息   684.4  处理器的型号(family,model与stepping)      724.5  最大的物理地址和线性地址      734.6  处理器扩展状态信息   744.6.1  探测Processor ExtendedState子叶 754.6.2  Processor ExtendedState子叶所需内存size   764.6.3  Processor ExtendedState的保存     774.6.4  Processor ExtendedState的恢复     784.7  处理器的特性      784.8  处理器的Cache与TLB信息     804.9  MONITOR/MWAIT信息     834.10  处理器的longmode   84第5章  了解Flags     855.1  Eflags中的状态标志位      865.1.1  signed数的运算 865.1.2  unsigned数的运算    895.2  IOPL标志位 905.3  TF标志与RF标志     935.4  NT标志 955.5  AC标志 965.6  VM标志      985.7  eflags寄存器的其他事项    99第6章  处理器的控制寄存器    1016.1 CR8       1026.2 CR3       1036.3 CR0       1046.3.1  保护模式位PE  1046.3.2  x87 FPU单元的执行环境      1046.3.3  CR0.PG控制位 1086.3.4  CR0.CD与CR0.NW控制位    1086.3.5  CR0.WP控制位 1106.3.6  CR0.AM控制位      1106.4 CR4       1106.4.1  CR4.TSD与CR4.PCE控制位 1106.4.2  CR4.DE与CR4.MCD控制位 1116.4.3  CR4.OSFXSR控制位      1116.4.4  CR4.VMXE与CR4.SMXE控制位 1116.4.5  CR4.PCIDE与CR4.SMEP控制位 1126.4.6  CR4.OSXSAVE控制位    1136.4.7  CR4中关于页的控制位   1136.5  EFER扩展功能寄存器      114第7章 MSR       1167.1  MSR的使用 1167.2  MTRR   1177.2.1  Fixed-range区域的映射   1187.2.2  MTRR的功能寄存器      1207.3  MSR中对特殊指令的支持  1247.3.1  支持sysenter/sysexit指令的MSR    1257.3.2  支持syscall/sysret指令的MSR      1267.3.3  支持swapgs指令的MSR 1277.3.4  支持monitor/mwait指令的MSR    1287.4  提供processorfeature管理  1297.5  其他未列出来的MSR  1297.6  关于MSR一些后续说明    129第二篇  处理器的工作模式第8章  实地址模式    1328.1  真实的地址   1328.2  real mode的编址 1328.3  real mode的状态 1338.4  段基址的计算      1348.5  第1条执行的指令      1348.6  实模式下的执行环境   1358.7  实模式下的IVT   1358.8  突破64K段限      1368.9  A20地址线   137第9章 SMM系统管理模式探索      1389.1  进入SMM    1389.2  SMM的运行环境 1419.2.1  SMRAM区域    1419.2.2  SMM执行环境的初始化  1439.2.3  SMM下的operand与address  1449.2.4  SMM下的CS与EIP      1449.2.5  SMM下的SS与ESP      1459.3  SMM里的中断    1459.4  SMI的Back-to-Back响应   1479.5  SMM里开启保护模式 1479.6  SMM的版本 1489.7  I/O指令的重启及Halt重启      1519.8  SMM的退出 1529.9  SMBASE的重定位     1539.10  SMI处理程序的初始化    1549.11  SMM的安全      1569.11.1  芯片组的控制  1569.11.2  处理器对SMRAM空间的限制     1589.11.3  cache的限制    1609.12  测试SMI处理程序    161第10章 x86/x64保护模式体系(上)    16310.1  x86/x64的权限   16410.2  保护模式下的环境    16410.2.1  段式管理所使用的资源  16510.2.2  paging分页机制所使用的资源     16510.3  物理地址的产生 16610.4  段式管理机制    16710.4.1  段式内存管理  16810.4.2  段式的保护措施     16810.5  段式管理的数据结构 16910.5.1  SegmentSelector(段选择子)     16910.5.2  DescriptorTable(描述符表)      17210.5.3  Segment SelectorRegister(段寄存器)      17410.5.4  SegmentDescriptor(段描述符)  17510.5.5  LDT描述符与LDT 25810.6  开启保护模式    26010.6.1  初始化GDT    26010.6.2  初始化IDT     26210.6.3  切换到保护模式     263第11章 x86/x64保护模式体系(下)    26511.1  物理页面     26511.1.1  处理器的最高物理地址(MAXPHYADDR)      26611.1.2  物理页面的大小     26711.1.3  页转换模式(PagingMode) 26811.2  paging机制下使用的资源 27011.2.1  寄存器     27011.2.2  CPUID查询leaf     27011.2.3  寄存器的控制位     27111.2.4  页转换表资源  27211.3  32位paging模式(non-PAE模式)      27311.3.1  CR3结构 27411.3.2  32位paging模式下的PDE结构   27511.3.3  使用32位paging    27911.4  PAE paging模式 28211.4.1  在Intel64下的CR3与PDPTE寄存器 28311.4.2  在AMD64下的CR3     28511.4.3  PAE paging模式里的PDPTE结构      28611.4.4  PAE paging模式里的PDE结构    28611.4.5  PAE paging模式里的PTE结构    28811.4.6  使用和测试PAEpaging模式 28811.4.7  使用和测试ExecutionDisable功能      29211.5  IA-32e paging模式    29711.5.1  IA-32e paging模式下的CR3  29911.5.2  IA-32e paging模式下的PML4E结构   30211.5.3  IA-32e paging模式下的PDPTE结构   30211.5.4  IA-32e paging模式下的PDE结构      30311.5.5  IA-32e paging模式下的PTE

本目录推荐