diff --git a/.obsidian/workspace-mobile.json b/.obsidian/workspace-mobile.json index cf6d1cd..eb09c00 100644 --- a/.obsidian/workspace-mobile.json +++ b/.obsidian/workspace-mobile.json @@ -13,7 +13,7 @@ "state": { "type": "markdown", "state": { - "file": "FASM.md", + "file": "X86/Общего назначения.md", "mode": "source", "source": true } @@ -85,7 +85,7 @@ "state": { "type": "backlink", "state": { - "file": "FASM.md", + "file": "X86/Общего назначения.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -102,7 +102,7 @@ "state": { "type": "outgoing-link", "state": { - "file": "FASM.md", + "file": "X86/Общего назначения.md", "linksCollapsed": true, "unlinkedCollapsed": false } @@ -114,7 +114,7 @@ "state": { "type": "outline", "state": { - "file": "FASM.md" + "file": "X86/Общего назначения.md" } } }, @@ -141,13 +141,17 @@ "homepage:Open homepage": false } }, - "active": "908ebfd0d59a0fdb", + "active": "de240db6ce2a66fa", "lastOpenFiles": [ + "X86/Общего назначения/Двоичные арифметические", + "X86/Общего назначения/Передачи данных/MOVZX.md", + "X86/Общего назначения/Передачи данных/MOVSX(D).md", + "X86/Общего назначения.md", + "X86/Общего назначения/Передачи данных/CBW,CWDE,CDQE.md", + "X86.md", "Оглавление.md", "FASM.md", - "X86/Общего назначения.md", "X86/Общего назначения/Передачи данных/CWD,CDQ,CQO.md", - "X86.md", "X86/Общего назначения/Передачи данных/OUT.md", "X86/Общего назначения/Передачи данных/IN.md", "X86/Общего назначения/Передачи данных/POPA(D).md", @@ -167,14 +171,10 @@ "X86/Общего назначения/Передачи данных/BSWAP.md", "X86/Общего назначения/Условия.md", "Команды.md", - "Команды 1.md", - "Команды%2FОбщего назначения%2FПередачи данных%2FXCHG.md", "Untitled", - "Общегоы/Общего назначения/Передачи данных/MOV.md", "Общегоы/Общего назначения", "Общегоы", "Общегоы/Общего назначения/Передачи данных", - "Команды%2FОбщего назначения%2FПередачи данных%2FMOV.md", "Untitled.canvas", "Общего_назначения", "X86/Общего назначения/Передачи данных", diff --git a/X86/Общего назначения.md b/X86/Общего назначения.md index a24f5fc..dc3962e 100644 --- a/X86/Общего назначения.md +++ b/X86/Общего назначения.md @@ -1,25 +1,25 @@ ## Команды передачи данных -| Команды | Описание | -| -------------------------------------------------------------------------------:|:----------------------------------------------------- | -| [MOV](Общего%20назначения/Передачи%20данных/MOV.md) | Присваивание | -| [CMOVxx](Общего%20назначения/Передачи%20данных/CMOVxx.md) | Условное присваивание | -| [XCHG](Общего%20назначения/Передачи%20данных/XCHG.md) | Обмен значений | -| [BSWAP](Общего%20назначения/Передачи%20данных/BSWAP.md) | Перестановка байтов | -| [XADD](Общего%20назначения/Передачи%20данных/XADD.md) | Обмен и сложение | -| [CMPXCHG](Общего%20назначения/Передачи%20данных/CMPXCHG.md) | Сравнение и обмен | -| [CMPXCHG8B, CMPXCHG16B](Общего%20назначения/Передачи%20данных/CMPXCHG8(16)B.md) | Сравнение и обмен 8/16 байтов | -| [PUSH](Общего%20назначения/Передачи%20данных/PUSH.md) | Поместить значение в стек | -| [POP](Общего%20назначения/Передачи%20данных/POP.md) | Взять значение из стека | -| [PUSHA/PUSHAD](Общего%20назначения/Передачи%20данных/PUSHA(D).md) | Поместить значения регистров общего назначения в стек | -| [POPA/POPAD](Общего%20назначения/Передачи%20данных/POPA(D).md) | Взять значения регистров общего назначения из стека | -| [IN](Общего%20назначения/Передачи%20данных/IN.md) | Прочитать значение из порта ввода/вывода | -| [OUT](Общего%20назначения/Передачи%20данных/OUT.md) | Записать значение в порт ввода/вывода | -| CWD | Преобразовать Word в DWord | -| CDQ | Преобразовать DWord в QWord | -| CBW | Преобразовать Byte в Word | -| CWDE | Преобразовать Word в DWord в регистре eax | -| MOVSX | Присвоить и расширить с учетом знака | -| MOVZX | Присвоить и расширить нулевым значением | +| Команды | Описание | +| ------------------------------------------------------------------------------:|:----------------------------------------------------- | +| [MOV](Общего%20назначения/Передачи%20данных/MOV.md) | Присваивание | +| [CMOVxx](Общего%20назначения/Передачи%20данных/CMOVxx.md) | Условное присваивание | +| [XCHG](Общего%20назначения/Передачи%20данных/XCHG.md) | Обмен значений | +| [BSWAP](Общего%20назначения/Передачи%20данных/BSWAP.md) | Перестановка байтов | +| [XADD](Общего%20назначения/Передачи%20данных/XADD.md) | Обмен и сложение | +| [CMPXCHG](Общего%20назначения/Передачи%20данных/CMPXCHG.md) | Сравнение и обмен | +| [CMPXCHG8B/CMPXCHG16B](Общего%20назначения/Передачи%20данных/CMPXCHG8(16)B.md) | Сравнение и обмен 8/16 байтов | +| [PUSH](Общего%20назначения/Передачи%20данных/PUSH.md) | Поместить значение в стек | +| [POP](Общего%20назначения/Передачи%20данных/POP.md) | Взять значение из стека | +| [PUSHA/PUSHAD](Общего%20назначения/Передачи%20данных/PUSHA(D).md) | Поместить значения регистров общего назначения в стек | +| [POPA/POPAD](Общего%20назначения/Передачи%20данных/POPA(D).md) | Взять значения регистров общего назначения из стека | +| [IN](Общего%20назначения/Передачи%20данных/IN.md) | Прочитать значение из порта ввода/вывода | +| [OUT](Общего%20назначения/Передачи%20данных/OUT.md) | Записать значение в порт ввода/вывода | +| [CWD](Общего%20назначения/Передачи%20данных/CWD,CDQ,CQO.md) | Преобразовать Word в DWord | +| [CDQ](Общего%20назначения/Передачи%20данных/CWD,CDQ,CQO.md) | Преобразовать DWord в QWord | +| [CBW](Общего%20назначения/Передачи%20данных/CBW,CWDE,CDQE.md) | Преобразовать Byte в Word | +| [CWDE](Общего%20назначения/Передачи%20данных/CBW,CWDE,CDQE.md) | Преобразовать Word в DWord в регистре eax | +| [MOVSX](Общего%20назначения/Передачи%20данных/MOVSX(D).md) | Присвоить и расширить с учетом знака | +| [MOVZX](Общего%20назначения/Передачи%20данных/MOVZX.md) | Присвоить и расширить нулевым значением | ## Двоичные арифметические команды diff --git a/X86/Общего назначения/Передачи данных/CBW,CWDE,CDQE.md b/X86/Общего назначения/Передачи данных/CBW,CWDE,CDQE.md new file mode 100644 index 0000000..0a7ed1c --- /dev/null +++ b/X86/Общего назначения/Передачи данных/CBW,CWDE,CDQE.md @@ -0,0 +1,5 @@ +| Opcode | Instruction | Op/En | 64-bit Mode | Compat/Leg Mode | Description | +| ---------- | ----------- | ----- | ----------- | --------------- | -------------------------- | +| 98 | CBW | ZO | Valid | Valid | AX := sign-extend of AL. | +| 98 | CWDE | ZO | Valid | Valid | EAX := sign-extend of AX. | +| REX.W + 98 | CDQE | ZO | Valid | N.E. | RAX := sign-extend of EAX. | \ No newline at end of file diff --git a/X86/Общего назначения/Передачи данных/MOVSX(D).md b/X86/Общего назначения/Передачи данных/MOVSX(D).md new file mode 100644 index 0000000..e8d9b0d --- /dev/null +++ b/X86/Общего назначения/Передачи данных/MOVSX(D).md @@ -0,0 +1,10 @@ +| Opcode | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description | +| ---------------- | ----------------- | ----- | ----------- | --------------- | -------------------------------------------------- | +| 0F BE /r | MOVSX r16, r/m8 | RM | Valid | Valid | Move byte to word with sign-extension. | +| 0F BE /r | MOVSX r32, r/m8 | RM | Valid | Valid | Move byte to doubleword with sign-extension. | +| REX.W + 0F BE /r | MOVSX r64, r/m8 | RM | Valid | N.E. | Move byte to quadword with sign-extension. | +| 0F BF /r | MOVSX r32, r/m16 | RM | Valid | Valid | Move word to doubleword, with sign-extension. | +| REX.W + 0F BF /r | MOVSX r64, r/m16 | RM | Valid | N.E. | Move word to quadword with sign-extension. | +| 63 /r1 | MOVSXD r16, r/m16 | RM | Valid | N.E. | Move word to word with sign-extension. | +| 63 /r1 | MOVSXD r32, r/m32 | RM | Valid | N.E. | Move doubleword to doubleword with sign-extension. | +| REX.W + 63 /r | MOVSXD r64, r/m32 | RM | Valid | N.E. | Move doubleword to quadword with sign-extension. | \ No newline at end of file diff --git a/X86/Общего назначения/Передачи данных/MOVZX.md b/X86/Общего назначения/Передачи данных/MOVZX.md new file mode 100644 index 0000000..48b9402 --- /dev/null +++ b/X86/Общего назначения/Передачи данных/MOVZX.md @@ -0,0 +1,7 @@ +| Opcode | Instruction | Op/En | 64-Bit Mode | Compat/Leg Mode | Description | +| ---------------- | ---------------- | ----- | ----------- | --------------- | ---------------------------------------- | +| 0F B6 /r | MOVZX r16, r/m8 | RM | Valid | Valid | Move byte to word with zero-extension. | +| 0F B6 /r | MOVZX r32, r/m8 | RM | Valid | Valid | Move byte to doubleword, zero-extension. | +| REX.W + 0F B6 /r | MOVZX r64, r/m81 | RM | Valid | N.E. | Move byte to quadword, zero-extension. | +| 0F B7 /r | MOVZX r32, r/m16 | RM | Valid | Valid | Move word to doubleword, zero-extension. | +| REX.W + 0F B7 /r | MOVZX r64, r/m16 | RM | Valid | N.E. | Move word to quadword, zero-extension. | \ No newline at end of file