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

View File

@ -4,17 +4,17 @@
"type": "split", "type": "split",
"children": [ "children": [
{ {
"id": "73e5a9279ce077c6", "id": "0a9a3914929b7205",
"type": "tabs", "type": "tabs",
"children": [ "children": [
{ {
"id": "908ebfd0d59a0fdb", "id": "6a0ff7f9aaa2f335",
"type": "leaf", "type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "X86/Общего назначения.md", "file": "Оглавление.md",
"mode": "source", "mode": "preview",
"source": true "source": true
} }
} }
@ -85,7 +85,7 @@
"state": { "state": {
"type": "backlink", "type": "backlink",
"state": { "state": {
"file": "X86/Общего назначения.md", "file": "Оглавление.md",
"collapseAll": false, "collapseAll": false,
"extraContext": false, "extraContext": false,
"sortOrder": "alphabetical", "sortOrder": "alphabetical",
@ -102,7 +102,7 @@
"state": { "state": {
"type": "outgoing-link", "type": "outgoing-link",
"state": { "state": {
"file": "X86/Общего назначения.md", "file": "Оглавление.md",
"linksCollapsed": true, "linksCollapsed": true,
"unlinkedCollapsed": false "unlinkedCollapsed": false
} }
@ -114,7 +114,7 @@
"state": { "state": {
"type": "outline", "type": "outline",
"state": { "state": {
"file": "X86/Общего назначения.md" "file": "Оглавление.md"
} }
} }
}, },
@ -141,15 +141,18 @@
"homepage:Open homepage": false "homepage:Open homepage": false
} }
}, },
"active": "de240db6ce2a66fa", "active": "6a0ff7f9aaa2f335",
"lastOpenFiles": [ "lastOpenFiles": [
"Оглавление.md",
"X86/Общего назначения/Двоичные арифметические/SUB.md",
"X86/Общего назначения/Двоичные арифметические/ADC.md",
"X86/Общего назначения.md",
"X86/Общего назначения/Двоичные арифметические/ADD.md",
"X86/Общего назначения/Двоичные арифметические", "X86/Общего назначения/Двоичные арифметические",
"X86/Общего назначения/Передачи данных/MOVZX.md", "X86/Общего назначения/Передачи данных/MOVZX.md",
"X86/Общего назначения/Передачи данных/MOVSX(D).md", "X86/Общего назначения/Передачи данных/MOVSX(D).md",
"X86/Общего назначения.md",
"X86/Общего назначения/Передачи данных/CBW,CWDE,CDQE.md", "X86/Общего назначения/Передачи данных/CBW,CWDE,CDQE.md",
"X86.md", "X86.md",
"Оглавление.md",
"FASM.md", "FASM.md",
"X86/Общего назначения/Передачи данных/CWD,CDQ,CQO.md", "X86/Общего назначения/Передачи данных/CWD,CDQ,CQO.md",
"X86/Общего назначения/Передачи данных/OUT.md", "X86/Общего назначения/Передачи данных/OUT.md",
@ -169,8 +172,6 @@
"X86/Общего назначения/Передачи данных/MOV.md", "X86/Общего назначения/Передачи данных/MOV.md",
"X86/Общего назначения/Передачи данных/XADD.md", "X86/Общего назначения/Передачи данных/XADD.md",
"X86/Общего назначения/Передачи данных/BSWAP.md", "X86/Общего назначения/Передачи данных/BSWAP.md",
"X86/Общего назначения/Условия.md",
"Команды.md",
"Untitled", "Untitled",
"Общегоы/Общего назначения", "Общегоы/Общего назначения",
"Общегоы", "Общегоы",
@ -178,7 +179,6 @@
"Untitled.canvas", "Untitled.canvas",
"Общегоазначения", "Общегоазначения",
"X86/Общего назначения/Передачи данных", "X86/Общего назначения/Передачи данных",
"X86/Общего назначения", "X86/Общего назначения"
"X86"
] ]
} }

View File

@ -24,9 +24,9 @@
## Двоичные арифметические команды ## Двоичные арифметические команды
| Команды | Описание | | Команды | Описание |
| -------:|:--------------------- | | -----------------------------------------------------------:|:--------------------- |
| ADD | Сложение | | [ADD](Общего%20назначения/Двоичные%20арифметические/ADD.md) | Сложение |
| ADC | Сложение с переносом | | [ADC](Общего%20назначения/Двоичные%20арифметические/ADC.md) | Сложение с переносом |
| SUB | Вычитание | | SUB | Вычитание |
| SBB | Вычитание с заемом | | SBB | Вычитание с заемом |
| IMUL | Знаковое умножение | | IMUL | Знаковое умножение |

View File

@ -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.

View File

@ -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.

View File

@ -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.