This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| en:multiasm:papc:chapter_6_3 [2026/06/22 12:00] – pczekalski | en:multiasm:papc:chapter_6_3 [2026/06/22 12:00] (current) – pczekalski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Register Set ====== | ====== Register Set ====== | ||
| - | As x86 processors evolved, the set of available registers and their size expanded. Newer processors added more general-purpose registers, and new registers | + | As x86 processors evolved, the set of available registers and their size expanded. Newer processors added more general-purpose registers and new registers |
| ===== x86 registers ===== | ===== x86 registers ===== | ||
| The 8086 processor has seven general-purpose registers for data storage, data manipulation and indirect addressing. Four registers: AX, BX, CX and DX can be accessed in two 8-bit halves. The lower half has the " | The 8086 processor has seven general-purpose registers for data storage, data manipulation and indirect addressing. Four registers: AX, BX, CX and DX can be accessed in two 8-bit halves. The lower half has the " | ||
| Line 109: | Line 109: | ||
| </ | </ | ||
| - | The FPU instruction pointer, data pointer, and last-opcode registers | + | The FPU instruction pointer, data pointer, and last-opcode registers |
| <figure fputagreg> | <figure fputagreg> | ||
| Line 123: | Line 123: | ||
| </ | </ | ||
| - | The Control Word register (Fig {{ref> | + | The Control Word register (Fig {{ref> |
| <figure fpucontrolreg> | <figure fpucontrolreg> | ||
| Line 148: | Line 148: | ||
| The YMM registers are the 256-bit extension to the XMM registers. They are introduced to implement the AVX instruction set. Additionally, | The YMM registers are the 256-bit extension to the XMM registers. They are introduced to implement the AVX instruction set. Additionally, | ||
| ===== ZMM registers ===== | ===== ZMM registers ===== | ||
| - | ZMM registers are an extension of the XMM registers | + | ZMM registers are an extension of the XMM registers, providing |
| XMM are the physical lower halves of YMM, which are, in turn, the lower halves of ZMM. Anything written to the XMM register appears in part of the YMM and ZMM registers as presented in Fig {{ref> | XMM are the physical lower halves of YMM, which are, in turn, the lower halves of ZMM. Anything written to the XMM register appears in part of the YMM and ZMM registers as presented in Fig {{ref> | ||
| Line 159: | Line 159: | ||
| ===== Additional registers ===== | ===== Additional registers ===== | ||
| - | In the x64 architecture, | + | In the x64 architecture, |
| Different processors have different sets of model-specific registers, MSR. There are also machine check registers MCR. They are used to control and report on processor performance and to detect and report hardware errors. Mostly, the described registers are not accessible to an application program and are controlled by the operating system, so they will not be described in this book. For more details, please refer to Intel documentation ((https:// | Different processors have different sets of model-specific registers, MSR. There are also machine check registers MCR. They are used to control and report on processor performance and to detect and report hardware errors. Mostly, the described registers are not accessible to an application program and are controlled by the operating system, so they will not be described in this book. For more details, please refer to Intel documentation ((https:// | ||