1. 第一章
a. 符号约定
a1. 字节顺序
a2. 保留的比特位和软件兼容性
a3. 指令操作数
a4. 十六进制和二进制数
a5. 分段地址
a. 符号约定
a1. 字节顺序
intel的32和64架构均使用小端地址模式。小端:高字节在高地址,大端:高字节在低地址。例如:
31 24 23 16 15 8 7 0
Byte3 | byte2 | byte1 | byte0 |
Byte0 | Byte1 | Byte2 | Byte3 |
4 小端
0 大端
a2. 保留的比特位和软件兼容性
大多数寄存器都有地址映射,某些位可能标记为保留,以便未来使用。软件应视其为未知、无效的。
使用保留位可能发生意想不到的错误,也不利于软件的兼容性。
a3. 指令操作数
指令的形式如下,标签:助记符 参数一,参数二,参数三。标签,暗示一段代码或者数据的开始,指
向代码或数据段的首地址;助记符,指令作用的符号;参数可选。
a4. 十六进制和二进制数
十六进制以H符号结尾,二进制数以B符号结尾。例如:OFB2EH为十六进制,10111B为二进制。
a5. 分段地址
处理器使用字节寻址,也就是说地址空间由一个个字节组成,无论一次访问一个或者多个字节,一个
地址只能对应于一个字节。处理器支持分段地址,有的程序的代码、数据、栈可能不在同一个段内,可
以使用下列形式访问:
DS:ffeeH
CS:EIP
a5. 新的获取CPUID、CR和MSR寄存器值的语法
通过使用CPUID指令、检查控制寄存器对应位或读模式声明寄存器获取特性标志、状态或系统信息。
a6. 异常
异常是当指令引发错误、断点停止、中断处理的一个事件。