From 334557968de43ad2a2bb2d022c89736469013b3c Mon Sep 17 00:00:00 2001 From: sweetbread Date: Fri, 5 Jan 2024 23:30:32 +0300 Subject: [PATCH] vault backup: 2024-01-05 23:30:32 --- .obsidian/graph.json | 7 ++ .obsidian/workspace-mobile.json | 34 ++++----- X86/Общего назначения.md | 12 +-- X86/Общего назначения/Логические/AND.md | 26 +++++++ X86/Общего назначения/Логические/NOT.md | 7 ++ X86/Общего назначения/Логические/OR.md | 26 +++++++ X86/Общего назначения/Логические/XOR.md | 26 +++++++ .../Побитовый сдвиг, вращение/Untitled.md | 75 +++++++++++++++++++ 8 files changed, 190 insertions(+), 23 deletions(-) create mode 100644 X86/Общего назначения/Логические/AND.md create mode 100644 X86/Общего назначения/Логические/NOT.md create mode 100644 X86/Общего назначения/Логические/OR.md create mode 100644 X86/Общего назначения/Логические/XOR.md create mode 100644 X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md diff --git a/.obsidian/graph.json b/.obsidian/graph.json index c80a9eb..fa5d354 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -20,6 +20,13 @@ "a": 1, "rgb": 14725458 } + }, + { + "query": "path:\"X86/Общего назначения/Логические\" ", + "color": { + "a": 1, + "rgb": 11657298 + } } ], "collapse-display": true, diff --git a/.obsidian/workspace-mobile.json b/.obsidian/workspace-mobile.json index b06cebf..bbd423d 100644 --- a/.obsidian/workspace-mobile.json +++ b/.obsidian/workspace-mobile.json @@ -4,17 +4,17 @@ "type": "split", "children": [ { - "id": "6ad9805b4bc97610", + "id": "c36ac64ad0e8893b", "type": "tabs", "children": [ { - "id": "873e09e8c6ef8008", + "id": "227af05a912ac149", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Оглавление.md", - "mode": "preview", + "file": "X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md", + "mode": "source", "source": true } } @@ -85,7 +85,7 @@ "state": { "type": "backlink", "state": { - "file": "Оглавление.md", + "file": "X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -102,7 +102,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "Оглавление.md", + "file": "X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md", "linksCollapsed": true, "unlinkedCollapsed": false } @@ -114,7 +114,7 @@ "state": { "type": "outline", "state": { - "file": "Оглавление.md" + "file": "X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md" } } }, @@ -141,11 +141,18 @@ "homepage:Open homepage": false } }, - "active": "873e09e8c6ef8008", + "active": "227af05a912ac149", "lastOpenFiles": [ "X86/Общего назначения.md", - "X86.md", + "X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md", + "X86/Общего назначения/Побитовый сдвиг, вращение", "Оглавление.md", + "X86/Общего назначения/Логические/NOT.md", + "X86/Общего назначения/Логические/XOR.md", + "X86/Общего назначения/Логические/OR.md", + "X86/Общего назначения/Логические/AND.md", + "X86/Общего назначения/Логические", + "X86.md", "X86/Общего назначения/Двоичные арифметические/CMP.md", "X86/Общего назначения/Двоичные арифметические/NEG.md", "X86/Общего назначения/Двоичные арифметические/ADC.md", @@ -165,20 +172,13 @@ "FASM.md", "X86/Общего назначения/Передачи данных/CWD,CDQ,CQO.md", "X86/Общего назначения/Передачи данных/OUT.md", - "X86/Общего назначения/Передачи данных/IN.md", - "X86/Общего назначения/Передачи данных/POPA(D).md", - "X86/Общего назначения/Передачи данных/PUSHA(D).md", - "Общего назначения/Передачи данных/PUSHA(D).md", "Общего назначения", "Общего назначения/Передачи данных", - "X86/Общего назначения/Untitled.md", "Untitled", "Общегоы/Общего назначения", "Общегоы", "Общегоы/Общего назначения/Передачи данных", "Untitled.canvas", - "Общего_назначения", - "X86/Общего назначения/Передачи данных", - "X86/Общего назначения" + "Общего_назначения" ] } \ No newline at end of file diff --git a/X86/Общего назначения.md b/X86/Общего назначения.md index 782b3fe..c266341 100644 --- a/X86/Общего назначения.md +++ b/X86/Общего назначения.md @@ -48,12 +48,12 @@ | AAD | ASCII коррекция перед делением | ## Логические команды -| Команды | Описание | -| -------:|:------------------------------------ | -| AND | Побитовое логическое И | -| OR | Побитовое логическое ИЛИ | -| XOR | Побитовое логическое Исключающее ИЛИ | -| NOT | Побитовое логическое НЕ | +| Команды | Описание | +| --------------------------------------------:|:------------------------------------ | +| [AND](Общего%20назначения/Логические/AND.md) | Побитовое логическое И | +| [OR](Общего%20назначения/Логические/OR.md) | Побитовое логическое ИЛИ | +| [XOR](Общего%20назначения/Логические/XOR.md) | Побитовое логическое Исключающее ИЛИ | +| [NOT](Общего%20назначения/Логические/NOT.md) | Побитовое логическое НЕ | ## Команды побитового сдвига и вращения | Команды | Описание | diff --git a/X86/Общего назначения/Логические/AND.md b/X86/Общего назначения/Логические/AND.md new file mode 100644 index 0000000..094c227 --- /dev/null +++ b/X86/Общего назначения/Логические/AND.md @@ -0,0 +1,26 @@ +| Opcode | Instruction | Op/En | 64-bit Mode | Compat/Leg Mode | Description | +| ---------------- | ---------------- | ----- | ----------- | --------------- | ----------------------------------------- | +| 24 ib | AND AL, imm8 | I | Valid | Valid | AL AND imm8. | +| 25 iw | AND AX, imm16 | I | Valid | Valid | AX AND imm16. | +| 25 id | AND EAX, imm32 | I | Valid | Valid | EAX AND imm32. | +| REX.W + 25 id | AND RAX, imm32 | I | Valid | N.E. | RAX AND imm32 sign-extended to 64-bits. | +| 80 /4 ib | AND r/m8, imm8 | MI | Valid | Valid | r/m8 AND imm8. | +| REX + 80 /4 ib | AND r/m8\*, imm8 | MI | Valid | N.E. | r/m8 AND imm8. | +| 81 /4 iw | AND r/m16, imm16 | MI | Valid | Valid | r/m16 AND imm16. | +| 81 /4 id | AND r/m32, imm32 | MI | Valid | Valid | r/m32 AND imm32. | +| REX.W + 81 /4 id | AND r/m64, imm32 | MI | Valid | N.E. | r/m64 AND imm32 sign extended to 64-bits. | +| 83 /4 ib | AND r/m16, imm8 | MI | Valid | Valid | r/m16 AND imm8 (sign-extended). | +| 83 /4 ib | AND r/m32, imm8 | MI | Valid | Valid | r/m32 AND imm8 (sign-extended). | +| REX.W + 83 /4 ib | AND r/m64, imm8 | MI | Valid | N.E. | r/m64 AND imm8 (sign-extended). | +| 20 /r | AND r/m8, r8 | MR | Valid | Valid | r/m8 AND r8. | +| REX + 20 /r | AND r/m8\*, r8\* | MR | Valid | N.E. | r/m64 AND r8 (sign-extended). | +| 21 /r | AND r/m16, r16 | MR | Valid | Valid | r/m16 AND r16. | +| 21 /r | AND r/m32, r32 | MR | Valid | Valid | r/m32 AND r32. | +| REX.W + 21 /r | AND r/m64, r64 | MR | Valid | N.E. | r/m64 AND r32. | +| 22 /r | AND r8, r/m8 | RM | Valid | Valid | r8 AND r/m8. | +| REX + 22 /r | AND r8*, r/m8\* | RM | Valid | N.E. | r/m64 AND r8 (sign-extended). | +| 23 /r | AND r16, r/m16 | RM | Valid | Valid | r16 AND r/m16. | +| 23 /r | AND r32, r/m32 | RM | Valid | Valid | r32 AND r/m32. | +| REX.W + 23 /r | AND r64, r/m64 | RM | Valid | N.E. | r64 AND r/m64. | + +> \* 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. \ No newline at end of file diff --git a/X86/Общего назначения/Логические/NOT.md b/X86/Общего назначения/Логические/NOT.md new file mode 100644 index 0000000..41c0992 --- /dev/null +++ b/X86/Общего назначения/Логические/NOT.md @@ -0,0 +1,7 @@ +| Opcode | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description | +| ------------- | ----------- | ----- | ----------- | --------------- | -------------------------- | +| F6 /2 | NOT r/m8 | M | Valid | Valid | Reverse each bit of r/m8. | +| REX + F6 /2 | NOT r/m81 | M | Valid | N.E. | Reverse each bit of r/m8. | +| F7 /2 | NOT r/m16 | M | Valid | Valid | Reverse each bit of r/m16. | +| F7 /2 | NOT r/m32 | M | Valid | Valid | Reverse each bit of r/m32. | +| REX.W + F7 /2 | NOT r/m64 | M | Valid | N.E. | Reverse each bit of r/m64. | \ No newline at end of file diff --git a/X86/Общего назначения/Логические/OR.md b/X86/Общего назначения/Логические/OR.md new file mode 100644 index 0000000..689506c --- /dev/null +++ b/X86/Общего назначения/Логические/OR.md @@ -0,0 +1,26 @@ +| Opcode | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description | +| ---------------- | --------------- | ----- | ----------- | --------------- | ------------------------------- | +| 0C ib | OR AL, imm8 | I | Valid | Valid | AL OR imm8. | +| 0D iw | OR AX, imm16 | I | Valid | Valid | AX OR imm16. | +| 0D id | OR EAX, imm32 | I | Valid | Valid | EAX OR imm32. | +| REX.W + 0D id | OR RAX, imm32 | I | Valid | N.E. | RAX OR imm32 (sign-extended). | +| 80 /1 ib | OR r/m8, imm8 | MI | Valid | Valid | r/m8 OR imm8. | +| REX + 80 /1 ib | OR r/m8\*, imm8 | MI | Valid | N.E. | r/m8 OR imm8. | +| 81 /1 iw | OR r/m16, imm16 | MI | Valid | Valid | r/m16 OR imm16. | +| 81 /1 id | OR r/m32, imm32 | MI | Valid | Valid | r/m32 OR imm32. | +| REX.W + 81 /1 id | OR r/m64, imm32 | MI | Valid | N.E. | r/m64 OR imm32 (sign-extended). | +| 83 /1 ib | OR r/m16, imm8 | MI | Valid | Valid | r/m16 OR imm8 (sign-extended). | +| 83 /1 ib | OR r/m32, imm8 | MI | Valid | Valid | r/m32 OR imm8 (sign-extended). | +| REX.W + 83 /1 ib | OR r/m64, imm8 | MI | Valid | N.E. | r/m64 OR imm8 (sign-extended). | +| 08 /r | OR r/m8, r8 | MR | Valid | Valid | r/m8 OR r8. | +| REX + 08 /r | OR r/m8\*, r8\* | MR | Valid | N.E. | r/m8 OR r8. | +| 09 /r | OR r/m16, r16 | MR | Valid | Valid | r/m16 OR r16. | +| 09 /r | OR r/m32, r32 | MR | Valid | Valid | r/m32 OR r32. | +| REX.W + 09 /r | OR r/m64, r64 | MR | Valid | N.E. | r/m64 OR r64. | +| 0A /r | OR r8, r/m8 | RM | Valid | Valid | r8 OR r/m8. | +| REX + 0A /r | OR r8\*, r/m8\* | RM | Valid | N.E. | r8 OR r/m8. | +| 0B /r | OR r16, r/m16 | RM | Valid | Valid | r16 OR r/m16. | +| 0B /r | OR r32, r/m32 | RM | Valid | Valid | r32 OR r/m32. | +| REX.W + 0B /r | OR r64, r/m64 | RM | Valid | N.E. | r64 OR r/m64. | + +> \* 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. \ No newline at end of file diff --git a/X86/Общего назначения/Логические/XOR.md b/X86/Общего назначения/Логические/XOR.md new file mode 100644 index 0000000..0a8b3ae --- /dev/null +++ b/X86/Общего назначения/Логические/XOR.md @@ -0,0 +1,26 @@ +| Opcode | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description | +| ---------------- | ---------------- | ----- | ----------- | --------------- | -------------------------------- | +| 34 ib | XOR AL, imm8 | I | Valid | Valid | AL XOR imm8. | +| 35 iw | XOR AX, imm16 | I | Valid | Valid | AX XOR imm16. | +| 35 id | XOR EAX, imm32 | I | Valid | Valid | EAX XOR imm32. | +| REX.W + 35 id | XOR RAX, imm32 | I | Valid | N.E. | RAX XOR imm32 (sign-extended). | +| 80 /6 ib | XOR r/m8, imm8 | MI | Valid | Valid | r/m8 XOR imm8. | +| REX + 80 /6 ib | XOR r/m8\*, imm8 | MI | Valid | N.E. | r/m8 XOR imm8. | +| 81 /6 iw | XOR r/m16, imm16 | MI | Valid | Valid | r/m16 XOR imm16. | +| 81 /6 id | XOR r/m32, imm32 | MI | Valid | Valid | r/m32 XOR imm32. | +| REX.W + 81 /6 id | XOR r/m64, imm32 | MI | Valid | N.E. | r/m64 XOR imm32 (sign-extended). | +| 83 /6 ib | XOR r/m16, imm8 | MI | Valid | Valid | r/m16 XOR imm8 (sign-extended). | +| 83 /6 ib | XOR r/m32, imm8 | MI | Valid | Valid | r/m32 XOR imm8 (sign-extended). | +| REX.W + 83 /6 ib | XOR r/m64, imm8 | MI | Valid | N.E. | r/m64 XOR imm8 (sign-extended). | +| 30 /r | XOR r/m8, r8 | MR | Valid | Valid | r/m8 XOR r8. | +| REX + 30 /r | XOR r/m8\*, r8\* | MR | Valid | N.E. | r/m8 XOR r8. | +| 31 /r | XOR r/m16, r16 | MR | Valid | Valid | r/m16 XOR r16. | +| 31 /r | XOR r/m32, r32 | MR | Valid | Valid | r/m32 XOR r32. | +| REX.W + 31 /r | XOR r/m64, r64 | MR | Valid | N.E. | r/m64 XOR r64. | +| 32 /r | XOR r8, r/m8 | RM | Valid | Valid | r8 XOR r/m8. | +| REX + 32 /r | XOR r8\*, r/m8\* | RM | Valid | N.E. | r8 XOR r/m8. | +| 33 /r | XOR r16, r/m16 | RM | Valid | Valid | r16 XOR r/m16. | +| 33 /r | XOR r32, r/m32 | RM | Valid | Valid | r32 XOR r/m32. | +| REX.W + 33 /r | XOR r64, r/m64 | RM | Valid | N.E. | r64 XOR r/m64. | + +> * In64-bit mode, r/m8 cannot been coded to access the following byte registers if a REX prefix is used: AH, BH, CH, DH. \ No newline at end of file diff --git a/X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md b/X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md new file mode 100644 index 0000000..8ccddb5 --- /dev/null +++ b/X86/Общего назначения/Побитовый сдвиг, вращение/Untitled.md @@ -0,0 +1,75 @@ +**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