vault backup: 2024-01-05 22:50:17

This commit is contained in:
sweetbread
2024-01-05 22:50:17 +03:00
parent dc69f5dd7a
commit 9aa10fb36c
5 changed files with 106 additions and 28 deletions
+14 -14
View File
@@ -23,17 +23,17 @@
## Двоичные арифметические команды
| Команды | Описание |
| -------:|:--------------------- |
| ADD | Сложение |
| ADC | Сложение с переносом |
| SUB | Вычитание |
| SBB | Вычитание с заемом |
| IMUL | Знаковое умножение |
| MUL | Беззнаковое умножение |
| IDIV | Знаковое деление |
| DIV | Беззнаковое деление |
| INC | Инкремент |
| DEC | Декремент |
| NEG | Смена знака |
| CMP | Сравнение |
| Команды | Описание |
| -----------------------------------------------------------:|:--------------------- |
| [ADD](Общего%20назначения/Двоичные%20арифметические/ADD.md) | Сложение |
| [ADC](Общего%20назначения/Двоичные%20арифметические/ADC.md) | Сложение с переносом |
| SUB | Вычитание |
| SBB | Вычитание с заемом |
| IMUL | Знаковое умножение |
| MUL | Беззнаковое умножение |
| IDIV | Знаковое деление |
| DIV | Беззнаковое деление |
| INC | Инкремент |
| DEC | Декремент |
| NEG | Смена знака |
| CMP | Сравнение |
@@ -0,0 +1,26 @@
| Opcode | Instruction | Op/En | 64-bit Mode | Compat/Leg Mode | Description |
| ---------------- | ---------------- | ----- | ----------- | --------------- | ----------------------------------------------------- |
| 14 ib | ADC AL, imm8 | I | Valid | Valid | Add with carry imm8 to AL. |
| 15 iw | ADC AX, imm16 | I | Valid | Valid | Add with carry imm16 to AX. |
| 15 id | ADC EAX, imm32 | I | Valid | Valid | Add with carry imm32 to EAX. |
| REX.W + 15 id | ADC RAX, imm32 | I | Valid | N.E. | Add with carry imm32 sign extended to 64-bits to RAX. |
| 80 /2 ib | ADC r/m8, imm8 | MI | Valid | Valid | Add with carry imm8 to r/m8. |
| REX + 80 /2 ib | ADC r/m8\*, imm8 | MI | Valid | N.E. | Add with carry imm8 to r/m8. |
| 81 /2 iw | ADC r/m16, imm16 | MI | Valid | Valid | Add with carry imm16 to r/m16. |
| 81 /2 id | ADC r/m32, imm32 | MI | Valid | Valid | Add with CF imm32 to r/m32. |
| REX.W + 81 /2 id | ADC r/m64, imm32 | MI | Valid | N.E. | Add with CF imm32 sign extended to 64-bits to r/m64. |
| 83 /2 ib | ADC r/m16, imm8 | MI | Valid | Valid | Add with CF sign-extended imm8 to r/m16. |
| 83 /2 ib | ADC r/m32, imm8 | MI | Valid | Valid | Add with CF sign-extended imm8 into r/m32. |
| REX.W + 83 /2 ib | ADC r/m64, imm8 | MI | Valid | N.E. | Add with CF sign-extended imm8 into r/m64. |
| 10 /r | ADC r/m8, r8 | MR | Valid | Valid | Add with carry byte register to r/m8. |
| REX + 10 /r | ADC r/m8\*, r8\* | MR | Valid | N.E. | Add with carry byte register to r/m64. |
| 11 /r | ADC r/m16, r16 | MR | Valid | Valid | Add with carry r16 to r/m16. |
| 11 /r | ADC r/m32, r32 | MR | Valid | Valid | Add with CF r32 to r/m32. |
| REX.W + 11 /r | ADC r/m64, r64 | MR | Valid | N.E. | Add with CF r64 to r/m64. |
| 12 /r | ADC r8, r/m8 | RM | Valid | Valid | Add with carry r/m8 to byte register. |
| REX + 12 /r | ADC r8\*, r/m8\* | RM | Valid | N.E. | Add with carry r/m64 to byte register. |
| 13 /r | ADC r16, r/m16 | RM | Valid | Valid | Add with carry r/m16 to r16. |
| 13 /r | ADC r32, r/m32 | RM | Valid | Valid | Add with CF r/m32 to r32. |
| REX.W + 13 /r | ADC r64, r/m64 | RM | Valid | N.E. | Add with CF r/m64 to r64. |
> *In 64-bit mode, r/m8 can not be encoded to access the following byte registers if a REX prefix is used: AH, BH, CH, DH.
@@ -0,0 +1,26 @@
| Opcode | Instruction | Op/En | 64-bit Mode | Compat/Leg Mode | Description |
| ---------------- | ---------------- | ----- | ----------- | --------------- | -------------------------------------------- |
| 04 ib | ADD AL, imm8 | I | Valid | Valid | Add imm8 to AL. |
| 05 iw | ADD AX, imm16 | I | Valid | Valid | Add imm16 to AX. |
| 05 id | ADD EAX, imm32 | I | Valid | Valid | Add imm32 to EAX. |
| REX.W + 05 id | ADD RAX, imm32 | I | Valid | N.E. | Add imm32 sign-extended to 64-bits to RAX. |
| 80 /0 ib | ADD r/m8, imm8 | MI | Valid | Valid | Add imm8 to r/m8. |
| REX + 80 /0 ib | ADD r/m8\*, imm8 | MI | Valid | N.E. | Add sign-extended imm8 to r/m8. |
| 81 /0 iw | ADD r/m16, imm16 | MI | Valid | Valid | Add imm16 to r/m16. |
| 81 /0 id | ADD r/m32, imm32 | MI | Valid | Valid | Add imm32 to r/m32. |
| REX.W + 81 /0 id | ADD r/m64, imm32 | MI | Valid | N.E. | Add imm32 sign-extended to 64-bits to r/m64. |
| 83 /0 ib | ADD r/m16, imm8 | MI | Valid | Valid | Add sign-extended imm8 to r/m16. |
| 83 /0 ib | ADD r/m32, imm8 | MI | Valid | Valid | Add sign-extended imm8 to r/m32. |
| REX.W + 83 /0 ib | ADD r/m64, imm8 | MI | Valid | N.E. | Add sign-extended imm8 to r/m64. |
| 00 /r | ADD r/m8, r8 | MR | Valid | Valid | Add r8 to r/m8. |
| REX + 00 /r | ADD r/m8\*, r8\* | MR | Valid | N.E. | Add r8 to r/m8. |
| 01 /r | ADD r/m16, r16 | MR | Valid | Valid | Add r16 to r/m16. |
| 01 /r | ADD r/m32, r32 | MR | Valid | Valid | Add r32 to r/m32. |
| REX.W + 01 /r | ADD r/m64, r64 | MR | Valid | N.E. | Add r64 to r/m64. |
| 02 /r | ADD r8, r/m8 | RM | Valid | Valid | Add r/m8 to r8. |
| REX + 02 /r | ADD r8\*, r/m8\* | RM | Valid | N.E. | Add r/m8 to r8. |
| 03 /r | ADD r16, r/m16 | RM | Valid | Valid | Add r/m16 to r16. |
| 03 /r | ADD r32, r/m32 | RM | Valid | Valid | Add r/m32 to r32. |
| REX.W + 03 /r | ADD r64, r/m64 | RM | Valid | N.E. | Add r/m64 to r64. |
> *In 64-bit mode, r/m8 can not be encoded to access the following byte registers if a REX prefix is used: AH, BH, CH, DH.
@@ -0,0 +1,26 @@
| Opcode | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description |
| ---------------- | ---------------- | ----- | ----------- | --------------- | --------------------------------------------------- |
| 2C ib | SUB AL, imm8 | I | Valid | Valid | Subtract imm8 from AL. |
| 2D iw | SUB AX, imm16 | I | Valid | Valid | Subtract imm16 from AX. |
| 2D id | SUB EAX, imm32 | I | Valid | Valid | Subtract imm32 from EAX. |
| REX.W + 2D id | SUB RAX, imm32 | I | Valid | N.E. | Subtract imm32 sign-extended to 64-bits from RAX. |
| 80 /5 ib | SUB r/m8, imm8 | MI | Valid | Valid | Subtract imm8 from r/m8. |
| REX + 80 /5 ib | SUB r/m81, imm8 | MI | Valid | N.E. | Subtract imm8 from r/m8. |
| 81 /5 iw | SUB r/m16, imm16 | MI | Valid | Valid | Subtract imm16 from r/m16. |
| 81 /5 id | SUB r/m32, imm32 | MI | Valid | Valid | Subtract imm32 from r/m32. |
| REX.W + 81 /5 id | SUB r/m64, imm32 | MI | Valid | N.E. | Subtract imm32 sign-extended to 64-bits from r/m64. |
| 83 /5 ib | SUB r/m16, imm8 | MI | Valid | Valid | Subtract sign-extended imm8 from r/m16. |
| 83 /5 ib | SUB r/m32, imm8 | MI | Valid | Valid | Subtract sign-extended imm8 from r/m32. |
| REX.W + 83 /5 ib | SUB r/m64, imm8 | MI | Valid | N.E. | Subtract sign-extended imm8 from r/m64. |
| 28 /r | SUB r/m8, r8 | MR | Valid | Valid | Subtract r8 from r/m8. |
| REX + 28 /r | SUB r/m81, r81 | MR | Valid | N.E. | Subtract r8 from r/m8. |
| 29 /r | SUB r/m16, r16 | MR | Valid | Valid | Subtract r16 from r/m16. |
| 29 /r | SUB r/m32, r32 | MR | Valid | Valid | Subtract r32 from r/m32. |
| REX.W + 29 /r | SUB r/m64, r64 | MR | Valid | N.E. | Subtract r64 from r/m64. |
| 2A /r | SUB r8, r/m8 | RM | Valid | Valid | Subtract r/m8 from r8. |
| REX + 2A /r | SUB r81, r/m81 | RM | Valid | N.E. | Subtract r/m8 from r8. |
| 2B /r | SUB r16, r/m16 | RM | Valid | Valid | Subtract r/m16 from r16. |
| 2B /r | SUB r32, r/m32 | RM | Valid | Valid | Subtract r/m32 from r32. |
| REX.W + 2B /r | SUB r64, r/m64 | RM | Valid | N.E. | Subtract r/m64 from r64. |
> *In 64-bit mode, r/m8 can not be encoded to access the following byte registers if a REX prefix is used: AH, BH, CH, DH.