diff --git a/.obsidian/graph.json b/.obsidian/graph.json index 639e92f..c889a51 100644 --- a/.obsidian/graph.json +++ b/.obsidian/graph.json @@ -7,16 +7,16 @@ "showOrphans": true, "collapse-color-groups": true, "colorGroups": [], - "collapse-display": true, - "showArrow": false, + "collapse-display": false, + "showArrow": true, "textFadeMultiplier": 0, - "nodeSizeMultiplier": 1, - "lineSizeMultiplier": 1, - "collapse-forces": true, - "centerStrength": 0.518713248970312, - "repelStrength": 10, + "nodeSizeMultiplier": 1.52787610619469, + "lineSizeMultiplier": 5, + "collapse-forces": false, + "centerStrength": 0.0714285714285714, + "repelStrength": 0.771175726927939, "linkStrength": 1, "linkDistance": 250, - "scale": 3.853381849979405, + "scale": 1.5884613927474214, "close": true } \ No newline at end of file diff --git a/.obsidian/plugins/homepage/data.json b/.obsidian/plugins/homepage/data.json index e6029f6..8206d1c 100644 --- a/.obsidian/plugins/homepage/data.json +++ b/.obsidian/plugins/homepage/data.json @@ -2,7 +2,7 @@ "version": 3, "homepages": { "Main Homepage": { - "value": "Команды", + "value": "Оглавление", "kind": "File", "openOnStartup": true, "openMode": "Replace all open notes", diff --git a/.obsidian/workspace-mobile.json b/.obsidian/workspace-mobile.json index a683328..609c624 100644 --- a/.obsidian/workspace-mobile.json +++ b/.obsidian/workspace-mobile.json @@ -4,16 +4,16 @@ "type": "split", "children": [ { - "id": "85bf405efbbf68d7", + "id": "68d7c37b4d7272bb", "type": "tabs", "children": [ { - "id": "7757764cfa8581dc", + "id": "de27de3851d40181", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Команды.md", + "file": "X86/Общего назначения.md", "mode": "source", "source": false } @@ -85,7 +85,7 @@ "state": { "type": "backlink", "state": { - "file": "Команды.md", + "file": "X86/Общего назначения.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -102,9 +102,9 @@ "state": { "type": "outgoing-link", "state": { - "file": "Команды.md", - "linksCollapsed": false, - "unlinkedCollapsed": true + "file": "X86/Общего назначения.md", + "linksCollapsed": true, + "unlinkedCollapsed": false } } }, @@ -114,7 +114,7 @@ "state": { "type": "outline", "state": { - "file": "Команды.md" + "file": "X86/Общего назначения.md" } } }, @@ -126,8 +126,7 @@ "state": {} } } - ], - "currentTab": 3 + ] }, "left-ribbon": { "hiddenItems": { @@ -141,12 +140,19 @@ "homepage:Open homepage": false } }, - "active": "7757764cfa8581dc", + "active": "de27de3851d40181", "lastOpenFiles": [ - "Команды/Общего назначения/Передачи данных/CMOVxx.md", + "X86/Общего назначения/Условия.md", + "X86/Общего назначения/Передачи данных/CMOVxx.md", + "X86/Общего назначения.md", + "X86.md", + "Оглавление.md", "Команды.md", - "Команды/Общего назначения/Передачи данных/MOV.md", - "Untitled.md", + "FASM.md", + "X86/Общего назначения/Передачи данных/XCHG.md", + "X86/Общего назначения/Передачи данных/MOV.md", + "Команды 1.md", + "Команды%2FОбщего назначения%2FПередачи данных%2FXCHG.md", "Untitled", "Общегоы/Общего назначения/Передачи данных/MOV.md", "Общегоы/Общего назначения", @@ -157,8 +163,8 @@ "Общего_назначения/Передачи_данных.md", "Общего_назначения", "Общего.md", - "Команды/Общего назначения/Передачи данных", - "Команды/Общего назначения", - "Команды" + "X86/Общего назначения/Передачи данных", + "X86/Общего назначения", + "X86" ] } \ No newline at end of file diff --git a/FASM.md b/FASM.md new file mode 100644 index 0000000..e69de29 diff --git a/X86.md b/X86.md new file mode 100644 index 0000000..1af88ad --- /dev/null +++ b/X86.md @@ -0,0 +1,5 @@ +- [Команды общего назначения](Общего%20назначения.md) + +--- +Источник: +http://www.ccfit.nsu.ru/~kireev/lab2/lab2com.htm \ No newline at end of file diff --git a/Команды.md b/X86/Общего назначения.md similarity index 73% rename from Команды.md rename to X86/Общего назначения.md index 4bf8829..f33d333 100644 --- a/Команды.md +++ b/X86/Общего назначения.md @@ -1,10 +1,9 @@ -## Команды общего назначения -### Команды передачи данных +## Команды передачи данных | Команды | Описание | |-------------:|:----------------------------------------------------- | -| [MOV](Команды/Общего%20назначения/Передачи%20данных/MOV) | Присваивание | -| [CMOVxx](Команды/Общего%20назначения/Передачи%20данных/CMOVxx) | Условное присваивание | -| XCHG | Обмен значений | +| [MOV](MOV.md) | Присваивание | +| [CMOVxx](CMOVxx.md) | Условное присваивание | +| [XCHG](XCHG.md) | Обмен значений | | BSWAP | Перестановка байтов | | XADD | Обмен и сложение | | CMPXCHG | Сравнение и обмен | @@ -21,9 +20,3 @@ | CWDE | Преобразовать Word в DWord в регистре eax | | MOVSX | Присвоить и расширить с учетом знака | | MOVZX | Присвоить и расширить нулевым значением | - - - ---- -Источник: -http://www.ccfit.nsu.ru/~kireev/lab2/lab2com.htm \ No newline at end of file diff --git a/Команды/Общего назначения/Передачи данных/CMOVxx.md b/X86/Общего назначения/Передачи данных/CMOVxx.md similarity index 99% rename from Команды/Общего назначения/Передачи данных/CMOVxx.md rename to X86/Общего назначения/Передачи данных/CMOVxx.md index 80ff4e8..7de8217 100644 --- a/Команды/Общего назначения/Передачи данных/CMOVxx.md +++ b/X86/Общего назначения/Передачи данных/CMOVxx.md @@ -1,3 +1,5 @@ +[Условия](Условия.md) + |Опкод|Инструкция|Op/En|64-битный режим|Легаси|Описание| |---|---|---|---|---|---| |0F 47 /r|CMOVA r16, r/m16|RM|Valid|Valid|Move if above (CF=0 and ZF=0).| diff --git a/Команды/Общего назначения/Передачи данных/MOV.md b/X86/Общего назначения/Передачи данных/MOV.md similarity index 100% rename from Команды/Общего назначения/Передачи данных/MOV.md rename to X86/Общего назначения/Передачи данных/MOV.md diff --git a/X86/Общего назначения/Передачи данных/XCHG.md b/X86/Общего назначения/Передачи данных/XCHG.md new file mode 100644 index 0000000..9f3557b --- /dev/null +++ b/X86/Общего назначения/Передачи данных/XCHG.md @@ -0,0 +1,21 @@ +|Opcode|Instruction|Op/En|64-Bit Mode|Compat/Leg Mode|Description| +|---|---|---|---|---|---| +|90+rw|XCHG AX, r16|O|Valid|Valid|Exchange r16 with AX.| +|90+rw|XCHG r16, AX|O|Valid|Valid|Exchange AX with r16.| +|90+rd|XCHG EAX, r32|O|Valid|Valid|Exchange r32 with EAX.| +|REX.W + 90+rd|XCHG RAX, r64|O|Valid|N.E.|Exchange r64 with RAX.| +|90+rd|XCHG r32, EAX|O|Valid|Valid|Exchange EAX with r32.| +|REX.W + 90+rd|XCHG r64, RAX|O|Valid|N.E.|Exchange RAX with r64.| +|86 /r|XCHG r/m8, r8|MR|Valid|Valid|Exchange r8 (byte register) with byte from r/m8.| +|REX + 86 /r|XCHG r/m8\*, r8\*|MR|Valid|N.E.|Exchange r8 (byte register) with byte from r/m8.| +|86 /r|XCHG r8, r/m8|RM|Valid|Valid|Exchange byte from r/m8 with r8 (byte register).| +|REX + 86 /r|XCHG r8\*, r/m8\*|RM|Valid|N.E.|Exchange byte from r/m8 with r8 (byte register).| +|87 /r|XCHG r/m16, r16|MR|Valid|Valid|Exchange r16 with word from r/m16.| +|87 /r|XCHG r16, r/m16|RM|Valid|Valid|Exchange word from r/m16 with r16.| +|87 /r|XCHG r/m32, r32|MR|Valid|Valid|Exchange r32 with doubleword from r/m32.| +|REX.W + 87 /r|XCHG r/m64, r64|MR|Valid|N.E.|Exchange r64 with quadword from r/m64.| +|87 /r|XCHG r32, r/m32|RM|Valid|Valid|Exchange doubleword from r/m32 with r32.| +|REX.W + 87 /r|XCHG r64, r/m64|RM|Valid|N.E.|Exchange quadword from r/m64 with r64.| +``` +* In 64-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/Общего назначения/Условия.md b/X86/Общего назначения/Условия.md new file mode 100644 index 0000000..5da4972 --- /dev/null +++ b/X86/Общего назначения/Условия.md @@ -0,0 +1,19 @@ + +| **Обозначение в командах** | **Флаги** | **Условие** | +| --------------------------:|:--------------:| ------------------------------------------------- | +| a / nbe | CF=0 и ZF=0 | "выше" или "не ниже или равно" (беззнаковый тип) | +| ae / nb / nc | CF=0 | "выше или равно" или "не ниже" или "нет переноса" | +| b / nae / c | CF=1 | "ниже" или "не выше или равно" или "есть перенос" | +| be / na | CF=1 или ZF=1 | "ниже или равно" или "не выше" | +| e / z | ZF=1 | "равно" или "ноль" | +| ne / nz | ZF=0 | "не равно" или "не ноль" | +| g / nle | ZF=0 и SF=OF | "больше" или "не меньше или равно" | +| ge / nl | SF=OF | "больше или равно" или "не меньше" | +| l / nge | SF≠OF | "меньше" или "не больше или равно" | +| le / ng | ZF=0 или SF≠OF | "меньше или равно" или "не больше" | +| no | OF=0 | "нет переполнения" | +| o | OF=1 | "есть переполнение" | +| np / po | PF=0 | "нет четности" или "нечетное" | +| p / pe | PF=1 | "есть четность" или "четное" | +| ns | SF=0 | "нет знака" | +| s | SF=1 | "есть знак" | \ No newline at end of file diff --git a/Оглавление.md b/Оглавление.md new file mode 100644 index 0000000..327b99e --- /dev/null +++ b/Оглавление.md @@ -0,0 +1,6 @@ +# Ассемблер +[FASM](FASM) + +# Архитектуры +[X86](X86) +[ARM](ARM)