From 347d25e8cc80a1c00fdf01aed7f84ab2e18f5257 Mon Sep 17 00:00:00 2001 From: sweetbread Date: Sat, 6 Jan 2024 21:48:42 +0300 Subject: [PATCH] vault backup: 2024-01-06 21:48:42 --- .obsidian/workspace-mobile.json | 18 ++--- X86/Общего назначения.md | 5 +- .../Побитовый сдвиг, вращение/{SAR,SHL,SHR.md => SHR.md} | 0 .../Побитовый сдвиг, вращение/Untitled.md | 75 ------------------- 4 files changed, 12 insertions(+), 86 deletions(-) rename X86/Общего назначения/Побитовый сдвиг, вращение/{SAR,SHL,SHR.md => SHR.md} (100%) delete mode 100644 X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md diff --git a/.obsidian/workspace-mobile.json b/.obsidian/workspace-mobile.json index dbebdd6..e7a607a 100644 --- a/.obsidian/workspace-mobile.json +++ b/.obsidian/workspace-mobile.json @@ -13,8 +13,8 @@ "state": { "type": "markdown", "state": { - "file": "X86.md", - "mode": "preview", + "file": "X86/Общего назначения.md", + "mode": "source", "source": true } } @@ -85,7 +85,7 @@ "state": { "type": "backlink", "state": { - "file": "X86.md", + "file": "X86/Общего назначения.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -102,7 +102,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "X86.md", + "file": "X86/Общего назначения.md", "linksCollapsed": true, "unlinkedCollapsed": false } @@ -114,7 +114,7 @@ "state": { "type": "outline", "state": { - "file": "X86.md" + "file": "X86/Общего назначения.md" } } }, @@ -143,19 +143,20 @@ }, "active": "735d60dece22bc96", "lastOpenFiles": [ + "X86/Общего назначения/Побитовый сдвиг, вращение/SHR.md", + "X86/Общего назначения.md", + "X86/Общего назначения/Двоичные арифметические/ADD.md", + "X86.md", "Оглавление.md", "X86/Общего назначения/Побитовый сдвиг, вращение/SAL.md", "X86/Общего назначения/Побитовый сдвиг, вращение/SAR.md", "X86/Общего назначения/Побитовый сдвиг, вращение/SHL.md", - "X86/Общего назначения/Побитовый сдвиг, вращение/SAR,SHL,SHR.md", - "X86/Общего назначения.md", "X86/Общего назначения/Побитовый сдвиг, вращение", "X86/Общего назначения/Логические/NOT.md", "X86/Общего назначения/Логические/XOR.md", "X86/Общего назначения/Логические/OR.md", "X86/Общего назначения/Логические/AND.md", "X86/Общего назначения/Логические", - "X86.md", "X86/Общего назначения/Двоичные арифметические/CMP.md", "X86/Общего назначения/Двоичные арифметические/NEG.md", "X86/Общего назначения/Двоичные арифметические/ADC.md", @@ -167,7 +168,6 @@ "X86/Общего назначения/Двоичные арифметические/SUB.md", "X86/Общего назначения/Двоичные арифметические/SBB.md", "X86/Общего назначения/Двоичные арифметические/IMUL.md", - "X86/Общего назначения/Двоичные арифметические/ADD.md", "X86/Общего назначения/Двоичные арифметические", "X86/Общего назначения/Передачи данных/MOVZX.md", "X86/Общего назначения/Передачи данных/MOVSX(D).md", diff --git a/X86/Общего назначения.md b/X86/Общего назначения.md index c266341..8aa2f1f 100644 --- a/X86/Общего назначения.md +++ b/X86/Общего назначения.md @@ -58,9 +58,10 @@ ## Команды побитового сдвига и вращения | Команды | Описание | | -------:|:------------------------------------- | -| SAR | Арифметический сдвиг вправо | +| SAR/SAL | Арифметический сдвиг вправо/влево | | SHR | Логический сдвиг вправо | -| SAL/SHL | Арифметический/логический сдвиг влево | +| | | +| SALSHL | Арифметический/логический сдвиг влево | | SHRD | Двойной сдвиг вправо | | SHLD | Двойной сдвиг влево | | ROR | Вращение вправо | diff --git a/X86/Общего назначения/Побитовый сдвиг, вращение/SAR,SHL,SHR.md b/X86/Общего назначения/Побитовый сдвиг, вращение/SHR.md similarity index 100% rename from X86/Общего назначения/Побитовый сдвиг, вращение/SAR,SHL,SHR.md rename to X86/Общего назначения/Побитовый сдвиг, вращение/SHR.md diff --git a/X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md b/X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md deleted file mode 100644 index 8ccddb5..0000000 --- a/X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md +++ /dev/null @@ -1,75 +0,0 @@ -**Opcode1** - -||Instruction|Op/En|64-Bit Mode|Compat/Leg Mode|Description| -|---|---|---|---|---|---| -|D0 /4|SAL r/m8, 1|M1|Valid|Valid|Multiply r/m8 by 2, once.| -|REX + D0 /4|SAL r/m82, 1|M1|Valid|N.E.|Multiply r/m8 by 2, once.| -|D2 /4|SAL r/m8, CL|MC|Valid|Valid|Multiply r/m8 by 2, CL times.| -|REX + D2 /4|SAL r/m82, CL|MC|Valid|N.E.|Multiply r/m8 by 2, CL times.| -|C0 /4 ib|SAL r/m8, imm8|MI|Valid|Valid|Multiply r/m8 by 2, imm8 times.| -|REX + C0 /4 ib|SAL r/m82, imm8|MI|Valid|N.E.|Multiply r/m8 by 2, imm8 times.| -|D1 /4|SAL r/m16, 1|M1|Valid|Valid|Multiply r/m16 by 2, once.| -|D3 /4|SAL r/m16, CL|MC|Valid|Valid|Multiply r/m16 by 2, CL times.| -|C1 /4 ib|SAL r/m16, imm8|MI|Valid|Valid|Multiply r/m16 by 2, imm8 times.| -|D1 /4|SAL r/m32, 1|M1|Valid|Valid|Multiply r/m32 by 2, once.| -|REX.W + D1 /4|SAL r/m64, 1|M1|Valid|N.E.|Multiply r/m64 by 2, once.| -|D3 /4|SAL r/m32, CL|MC|Valid|Valid|Multiply r/m32 by 2, CL times.| -|REX.W + D3 /4|SAL r/m64, CL|MC|Valid|N.E.|Multiply r/m64 by 2, CL times.| -|C1 /4 ib|SAL r/m32, imm8|MI|Valid|Valid|Multiply r/m32 by 2, imm8 times.| -|REX.W + C1 /4 ib|SAL r/m64, imm8|MI|Valid|N.E.|Multiply r/m64 by 2, imm8 times.| -|D0 /7|SAR r/m8, 1|M1|Valid|Valid|Signed divide3 r/m8 by 2, once.| -|REX + D0 /7|SAR r/m82, 1|M1|Valid|N.E.|Signed divide3 r/m8 by 2, once.| -|D2 /7|SAR r/m8, CL|MC|Valid|Valid|Signed divide3 r/m8 by 2, CL times.| -|REX + D2 /7|SAR r/m82, CL|MC|Valid|N.E.|Signed divide3 r/m8 by 2, CL times.| -|C0 /7 ib|SAR r/m8, imm8|MI|Valid|Valid|Signed divide3 r/m8 by 2, imm8 times.| -|REX + C0 /7 ib|SAR r/m82, imm8|MI|Valid|N.E.|Signed divide3 r/m8 by 2, imm8 times.| -|D1 /7|SAR r/m16,1|M1|Valid|Valid|Signed divide3 r/m16 by 2, once.| -|D3 /7|SAR r/m16, CL|MC|Valid|Valid|Signed divide3 r/m16 by 2, CL times.| -|C1 /7 ib|SAR r/m16, imm8|MI|Valid|Valid|Signed divide3 r/m16 by 2, imm8 times.| -|D1 /7|SAR r/m32, 1|M1|Valid|Valid|Signed divide3 r/m32 by 2, once.| -|REX.W + D1 /7|SAR r/m64, 1|M1|Valid|N.E.|Signed divide3 r/m64 by 2, once.| -|D3 /7|SAR r/m32, CL|MC|Valid|Valid|Signed divide3 r/m32 by 2, CL times.| -|REX.W + D3 /7|SAR r/m64, CL|MC|Valid|N.E.|Signed divide3 r/m64 by 2, CL times.| -|C1 /7 ib|SAR r/m32, imm8|MI|Valid|Valid|Signed divide3 r/m32 by 2, imm8 times.| -|REX.W + C1 /7 ib|SAR r/m64, imm8|MI|Valid|N.E.|Signed divide3 r/m64 by 2, imm8 times| -|D0 /4|SHL r/m8, 1|M1|Valid|Valid|Multiply r/m8 by 2, once.| -|REX + D0 /4|SHL r/m82, 1|M1|Valid|N.E.|Multiply r/m8 by 2, once.| -|D2 /4|SHL r/m8, CL|MC|Valid|Valid|Multiply r/m8 by 2, CL times.| -|REX + D2 /4|SHL r/m82, CL|MC|Valid|N.E.|Multiply r/m8 by 2, CL times.| -|C0 /4 ib|SHL r/m8, imm8|MI|Valid|Valid|Multiply r/m8 by 2, imm8 times.| -|REX + C0 /4 ib|SHL r/m82, imm8|MI|Valid|N.E.|Multiply r/m8 by 2, imm8 times.| -|D1 /4|SHL r/m16,1|M1|Valid|Valid|Multiply r/m16 by 2, once.| -|D3 /4|SHL r/m16, CL|MC|Valid|Valid|Multiply r/m16 by 2, CL times.| -|C1 /4 ib|SHL r/m16, imm8|MI|Valid|Valid|Multiply r/m16 by 2, imm8 times.| -|D1 /4|SHL r/m32,1|M1|Valid|Valid|Multiply r/m32 by 2, once.| - -**Opcode1** - -| | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description | -| ---------------- | --------------- | ----- | ----------- | --------------- | --------------------------------------- | -| REX.W + D1 /4 | SHL r/m64,1 | M1 | Valid | N.E. | Multiply r/m64 by 2, once. | -| D3 /4 | SHL r/m32, CL | MC | Valid | Valid | Multiply r/m32 by 2, CL times. | -| REX.W + D3 /4 | SHL r/m64, CL | MC | Valid | N.E. | Multiply r/m64 by 2, CL times. | -| C1 /4 ib | SHL r/m32, imm8 | MI | Valid | Valid | Multiply r/m32 by 2, imm8 times. | -| REX.W + C1 /4 ib | SHL r/m64, imm8 | MI | Valid | N.E. | Multiply r/m64 by 2, imm8 times. | -| D0 /5 | SHR r/m8,1 | M1 | Valid | Valid | Unsigned divide r/m8 by 2, once. | -| REX + D0 /5 | SHR r/m82, 1 | M1 | Valid | N.E. | Unsigned divide r/m8 by 2, once. | -| D2 /5 | SHR r/m8, CL | MC | Valid | Valid | Unsigned divide r/m8 by 2, CL times. | -| REX + D2 /5 | SHR r/m82, CL | MC | Valid | N.E. | Unsigned divide r/m8 by 2, CL times. | -| C0 /5 ib | SHR r/m8, imm8 | MI | Valid | Valid | Unsigned divide r/m8 by 2, imm8 times. | -| REX + C0 /5 ib | SHR r/m82, imm8 | MI | Valid | N.E. | Unsigned divide r/m8 by 2, imm8 times. | -| D1 /5 | SHR r/m16, 1 | M1 | Valid | Valid | Unsigned divide r/m16 by 2, once. | -| D3 /5 | SHR r/m16, CL | MC | Valid | Valid | Unsigned divide r/m16 by 2, CL times | -| C1 /5 ib | SHR r/m16, imm8 | MI | Valid | Valid | Unsigned divide r/m16 by 2, imm8 times. | -| D1 /5 | SHR r/m32, 1 | M1 | Valid | Valid | Unsigned divide r/m32 by 2, once. | -| REX.W + D1 /5 | SHR r/m64, 1 | M1 | Valid | N.E. | Unsigned divide r/m64 by 2, once. | -| D3 /5 | SHR r/m32, CL | MC | Valid | Valid | Unsigned divide r/m32 by 2, CL times. | -| REX.W + D3 /5 | SHR r/m64, CL | MC | Valid | N.E. | Unsigned divide r/m64 by 2, CL times. | -| C1 /5 ib | SHR r/m32, imm8 | MI | Valid | Valid | Unsigned divide r/m32 by 2, imm8 times. | -| REX.W + C1 /5 ib | SHR r/m64, imm8 | MI | Valid | N.E. | Unsigned divide r/m64 by 2, imm8 times. | - -> 1. See the IA-32 Architecture Compatibility section below. -> -> 2. 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. -> -> 3. Not the same form of division as IDIV; rounding is toward negative infinity. \ No newline at end of file