mirror of
https://github.com/AYIDouble/x86-Assembly-Reverse-Engineering.git
synced 2026-06-20 16:45:30 +08:00
➕ Add Text x86 registers
This commit is contained in:
parent
b38d4d0591
commit
0ac076ba8a
1 changed files with 12 additions and 0 deletions
12
README.md
12
README.md
|
|
@ -1,6 +1,18 @@
|
|||
# x86-assembly-Reverse-Engineering
|
||||
Knowledge I have found interesting about the topic of x86 assembly
|
||||
|
||||
##
|
||||
|
||||
## x86 Registers
|
||||
|
||||
*(Older Text from University of Virginia Computer Science (2006), one of the best Guides for x86 Assembly)*
|
||||
|
||||
Modern (i.e 3**86** and beyond) x**86** processors have eight 32-bit general purpose registers, as depicted in Figure 1. **The register names are mostly historical**. For example, **EAX** used to be called the accumulator since it was used by a number of arithmetic operations, and **ECX** was known as the counter since it was used to hold a loop index. Whereas most of the registers have lost their special purposes in the modern instruction set, by convention, two are reserved for special purposes — **the stack pointer (ESP)** and the **base pointer (EBP).**
|
||||
|
||||
For the **EAX**, **EBX**, **ECX**, and **EDX** registers, subsections may be used. For example, the least significant 2 bytes of **EAX** can be treated as a 16-bit register called **AX**. The least significant byte of **AX** can be used as a single 8-bit register called **AL**, while the most significant byte of **AX** can be used as a single 8-bit register called **AH**. These names refer to the same physical register. When a two-byte quantity is placed into **DX**, the update affects the value of **DH**, **DL**, and **EDX**. These sub-registers are mainly hold-overs from older, 16-bit versions of the instruction set. However, they are sometimes convenient when dealing with data that are smaller than **32-bits (e.g. 1-byte ASCII characters)**.
|
||||
|
||||
When referring to registers in assembly language, **the names are not case-sensitive**. For example, the names **EAX** and **eax** refer to the **same register**.
|
||||
|
||||

|
||||
|
||||
In **x86 registers** have an '**e**' in front of their name.</br>
|
||||
|
|
|
|||
Loading…
Reference in a new issue