x86 Assembly Reverse Engineering
1.0.0
这是X86组件的结构化读数,它是用现实世界中最简单的语言编写的。 ?
| 英特尔类型 | 位 | 姓名 |
|---|---|---|
| - | 8位 | 字节 |
| 8086 | 16位 | 单词 |
| I386 | 32位 | dword |
| x86 | 64位 | QWORD |
dword = dword =(双字)
qWord = qWord =(四字)
在32位ARM CPU上,单词是32位。


(弗吉尼亚大学计算机科学大学(2006年)的较旧文本,X86组装的最佳指南之一)
如图1所示,现代(即3 86及以后)x 86处理器具有八个32位通用寄存器,寄存器名称大多是历史性的。例如, EAX曾经被称为累加器,因为它被许多算术操作使用,而ECX被称为计数器,因为它用于保存循环索引。尽管大多数寄存器在现代教学集中失去了特殊目的,但按照惯例为特殊目的保留了两个寄存器 -堆栈指针(ESP)和基本指针(EBP)。
对于EAX , EBX , ECX和EDX寄存器,可以使用小节。例如, EAX的最低2个字节可以视为称为AX的16位寄存器。 AX的最低字节可以用作称为Al的单个8位寄存器,而最重要的AX的字节可以用作称为AH的单个8位寄存器。这些名称是指同一物理寄存器。当将两个字节数量放入DX中时,更新会影响DH , DL和EDX的值。这些子注册机构主要是从较旧的16位版本中持有的指令集。但是,在处理小于32位的数据时,它们有时很方便(例如1字节ASCII字符) 。
当用汇编语言提及寄存器时,名称不是对案例敏感的。例如,名称eax和eax是指同一寄存器。


在X86中,寄存器在其名称面前有一个“ e ”。
示例: E AX, E BX, E CX, E DX, E BP
其他信息:
在x64中,您有一个“ R ”。
示例: R AX, R BX, R CX, R DX, R BP
您还具有从XMM0到XMM15的双精度浮点。

完整的作弊表X86组件,20页。

