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頁。

