diff --git a/uk-ua/mips-ua.html.markdown b/uk-ua/mips-ua.html.markdown
index 20fa7638..8d4517fe 100644
--- a/uk-ua/mips-ua.html.markdown
+++ b/uk-ua/mips-ua.html.markdown
@@ -8,9 +8,9 @@ translators:
lang: uk-ua
---
-Мова асемблера MIPS (англ. Microprocessor without Interlocked Pipeline Stages) була написана для роботи з мікропорцесорами MIPS, парадигма яких була описана в 1981 році [Джоном Геннессі](https://uk.wikipedia.org/wiki/Джон_Лерой_Геннессі). Ці RISC процесори використовуються у таких вбудованих системах, як маршрутизатори та мережеві шлюзи.
+Мова ассемблера MIPS (англ. Microprocessor without Interlocked Pipeline Stages) була написана для роботи з мікропроцесорами MIPS, парадигма яких була описана в 1981 році [Джоном Геннессі](https://uk.wikipedia.org/wiki/Джон_Лерой_Геннессі). Ці RISC процесори використовуються у таких вбудованих системах, як маршрутизатори та мережеві шлюзи.
-[Read More](https://en.wikipedia.org/wiki/MIPS_architecture)
+[Детальніше](https://en.wikipedia.org/wiki/MIPS_architecture)
```asm
# Коментарі позначені як'#'
@@ -22,7 +22,7 @@ lang: uk-ua
.data # У цьому розділі дані зберігаються у пам'яті, виділеній в RAM, подібно до змінних
# в мовах програмування вищого рівня
- # Змінна оголошується наступним чином: [назва]: .[тип] [значенння]
+ # Змінна оголошується наступним чином: [назва]: .[тип] [значення]
# Наприклад:
hello_world: .asciiz "Hello World\n" # Оголосити текстову змінну
num1: .word 42 # word - це чисельний тип 32-бітного розряду
@@ -39,7 +39,7 @@ lang: uk-ua
_float: .float 3.14 # 4 байти
_double: .double 7.0 # 8 байтів
- .align 2 # Вирівнення пам'яті даних, де число
+ .align 2 # Вирівнювання пам'яті даних, де число
# показує кількість байтів, вирівнених
# у степені 2. (.align 2 означає
# чисельне (word) вирівнювання оскільки
@@ -63,15 +63,15 @@ lang: uk-ua
syscall # Виконує зазначену системну команду
# з обраним аргументом ($a0)
- # Регісти (використовуються, щоб тримати дані протягом виконання програми)
+ # Регістри (використовуються, щоб тримати дані протягом виконання програми)
# $t0 - $t9 # Тимчасові регістри використовуються
# для проміжних обчислень всередині
# підпрограм (не зберігаються між
# викликами функцій)
- # $s0 - $s7 # Збережені регісти, у яких значення
- # збегіраються між викликами підпрограм.
- # Зазвичай збегрігаються у стеку.
+ # $s0 - $s7 # Збережені регістри, у яких значення
+ # зберігаються між викликами підпрограм.
+ # Зазвичай зберігаються у стеку.
# $a0 - $a3 # Регістри для передачі аргументів для
# підпрограм
@@ -82,28 +82,28 @@ lang: uk-ua
la $t0, label # Скопіювати адресу в пам'яті, де
# зберігається значення змінної label
# в регістр $t0
- lw $t0, label # Скопівати чисельне значення з пам'яті
- lw $t1, 4($s0) # Скопівати чисельне значення з адреси
- # пам'яті ресгіста зі зміщенням в
+ lw $t0, label # Скопіювати чисельне значення з пам'яті
+ lw $t1, 4($s0) # Скопіювати чисельне значення з адреси
+ # пам'яті регістра зі зміщенням в
# 4 байти (адреса + 4)
lb $t2, label # Скопіювати буквений символ в частину
# нижчого порядку регістра $t2
lb $t2, 0($s0) # Скопіювати буквений символ з адреси
# в $s0 із зсувом 0
- # Подіне використання і 'lh' для halfwords
+ # Подібне використання і 'lh' для halfwords
- sw $t0, label # Збегігти чисельне значення в адресу в
+ sw $t0, label # Зберегти чисельне значення в адресу в
# пам'яті, що відповідає змінній label
- sw $t0, 8($s0) # Збегігти чисельне значення в адресу,
- # зазначеній у $s0, та зі зсувом у 8 байтів
+ sw $t0, 8($s0) # Зберегти чисельне значення в адресу,
+ # що зазначена у $s0, та зі зсувом у 8 байтів
# Така ж ідея використання 'sb' та 'sh' для буквених символів та halfwords.
# 'sa' не існує
### Математичні операції ###
_math:
- # Пам'ятаємо, що попередньо потрібно завантажити данні в пам'ять
- lw $t0, num # Із розділа з данними
+ # Пам'ятаємо, що попередньо потрібно завантажити дані в пам'ять
+ lw $t0, num # Із розділа з даними
li $t0, 5 # Або безпосередньо з константи
li $t1, 6
add $t2, $t0, $t1 # $t2 = $t0 + $t1
@@ -114,39 +114,39 @@ lang: uk-ua
div $t0, $t1 # Виконує $t0 / $t1. Отримати частку можна
# за допомогою команди 'mflo', остаток - 'mfhi'
- # Bitwise Shifting
- sll $t0, $t0, 2 # Побітовий здвиг вліво з безпосереднім
- # значенням (константою) 2
- sllv $t0, $t1, $t2 # Здвиг вліво зі змінною кількістю у
+ # Бітовий зсув
+ sll $t0, $t0, 2 # Побітовий зсув вліво на 2. Біти вищого порядку
+ # не зберігаються, нищого - заповнюються 0
+ sllv $t0, $t1, $t2 # Зсув вліво зі змінною кількістю у
# регістрі
- srl $t0, $t0, 5 # Побітовий здвиг вправо (не збегігає
- # знак, знак розширюється 0)
- srlv $t0, $t1, $t2 # Здвиг вправо зі змінною кількістю у
- # регістрі
- sra $t0, $t0, 7 # Побітовий арифметичний збвиг вправо
- # (зберігає знак)
- srav $t0, $t1, $t2 # Здвиг вправо зі змінною кількістю у
+ srl $t0, $t0, 5 # Побітовий зсув вправо на 5 (не зберігає
+ # біти, біти зліва заповнюються 0)
+ srlv $t0, $t1, $t2 # Зсув вправо зі змінною кількістю у
# регістрі
+ sra $t0, $t0, 7 # Побітовий арифметичний зсув вправо
+ # (зберігає біти)
+ srav $t0, $t1, $t2 # Зсув вправо зі змінною кількістю у
+ # регістрі зі збереження значеннь бітів
- # Bitwise operators
+ # Побітові операції
and $t0, $t1, $t2 # Побітове І (AND)
- andi $t0, $t1, 0xFFF # Побітове І з беспосереднім значенням
- or $t0, $t1, $t2 # Побітове АЛЕ (OR)
- ori $t0, $t1, 0xFFF # Побітове АЛЕ з беспосереднім значенням
+ andi $t0, $t1, 0xFFF # Побітове І з безпосереднім значенням
+ or $t0, $t1, $t2 # Побітове АБО (OR)
+ ori $t0, $t1, 0xFFF # Побітове АБО з безпосереднім значенням
xor $t0, $t1, $t2 # Побітова виключна диз'юнкція (XOR)
- xori $t0, $t1, 0xFFF # Побітове XOR з беспосереднім значенням
+ xori $t0, $t1, 0xFFF # Побітове XOR з безпосереднім значенням
nor $t0, $t1, $t2 # Побітова стрілка Пірса (NOR)
## Розгалуження ##
_branching:
- # В овсновному інструкції розгалуження мають наступну форму:
+ # В основному інструкції розгалуження мають наступну форму:
#