Обновить ридми после русификации имен скриптов
This commit is contained in:
parent
3c751e10ad
commit
b452f0bae6
163
README.md
163
README.md
|
|
@ -404,169 +404,6 @@ _start: ; метка _start
|
|||
| `.рездс` | Резервирование двойных слов в BND | `.рездс 25` |
|
||||
| `.резкс` | Резервирование квадрослов в BND | `.резкс 10` |
|
||||
|
||||
---
|
||||
|
||||
## 📝 Примеры программ
|
||||
|
||||
### Работа с памятью (переменные)
|
||||
|
||||
```assembly
|
||||
.текст
|
||||
.глобал _start
|
||||
|
||||
_start:
|
||||
переместить_имм раикс,42
|
||||
сохранить [переменная], раикс
|
||||
загрузить рбикс,[переменная]
|
||||
переместить_имм раикс,60
|
||||
загрузить рдиай,[переменная]
|
||||
вызов_системы
|
||||
|
||||
.данные
|
||||
переменная: .байт 0
|
||||
```
|
||||
|
||||
### Цикл и условный переход
|
||||
|
||||
```assembly
|
||||
.текст
|
||||
.глобал _start
|
||||
|
||||
_start:
|
||||
переместить_имм рсикс,10
|
||||
|
||||
цикл:
|
||||
переместить_имм раикс,1
|
||||
переместить_имм рдиай,1
|
||||
переместить_имм рсиай, msg
|
||||
переместить_имм рдикс,10
|
||||
вызов_системы
|
||||
уменьшить рсикс
|
||||
сравнить_с рсикс,0
|
||||
переход_если_больше цикл
|
||||
|
||||
переместить_имм раикс,60
|
||||
переместить_имм рдиай,0
|
||||
вызов_системы
|
||||
|
||||
.данные
|
||||
msg: .строка "Iteration\n"
|
||||
```
|
||||
|
||||
### Вычисление суммы чисел от 1 до 10
|
||||
|
||||
```assembly
|
||||
.текст
|
||||
.глобал _start
|
||||
|
||||
_start:
|
||||
переместить_имм р8,0
|
||||
переместить_имм р9,10
|
||||
|
||||
цикл:
|
||||
прибавить р8, р9
|
||||
уменьшить р9
|
||||
сравнить_с р9,0
|
||||
переход_если_больше цикл
|
||||
|
||||
переместить_имм раикс,60
|
||||
переместить рдикс, р8
|
||||
вызов_системы
|
||||
```
|
||||
|
||||
### Использование BND-секции
|
||||
|
||||
```assembly
|
||||
.текст
|
||||
.глобал _start
|
||||
|
||||
_start:
|
||||
переместить_имм раикс,0
|
||||
сохранить [счётчик], раикс
|
||||
переместить_имм рсикс,10
|
||||
|
||||
цикл:
|
||||
загрузить раикс,[счётчик]
|
||||
увеличить раикс
|
||||
сохранить [счётчик], раикс
|
||||
уменьшить рсикс
|
||||
сравнить_с рсикс,0
|
||||
переход_если_больше цикл
|
||||
|
||||
загрузить рдиай,[счётчик]
|
||||
переместить_имм раикс,60
|
||||
вызов_системы
|
||||
|
||||
.бнд
|
||||
счётчик: .байт 0
|
||||
```
|
||||
|
||||
### Косвенная адресация
|
||||
|
||||
```assembly
|
||||
.текст
|
||||
.глобал _start
|
||||
|
||||
_start:
|
||||
переместить_имм рбикс, переменная
|
||||
переместить_имм раикс,99
|
||||
сохранить [рбикс], раикс
|
||||
загрузить раикс,[рбикс]
|
||||
переместить_имм рдиай, раикс
|
||||
переместить_имм раикс,60
|
||||
вызов_системы
|
||||
|
||||
.данные
|
||||
переменная: .байт 0
|
||||
```
|
||||
|
||||
### Вывод аргумента командной строки
|
||||
|
||||
```assembly
|
||||
.текст
|
||||
.глобал _start
|
||||
|
||||
_start:
|
||||
сравнить_с рдиай,2
|
||||
переход_если_не_равно no_arg
|
||||
|
||||
загрузить р8,[рсиай + 8]
|
||||
переместить рдиай, р8
|
||||
исключающее_или рдикс, рдикс
|
||||
|
||||
strlen:
|
||||
загрузить ал,[р8]
|
||||
сравнить_с ал,0
|
||||
переход_если_равно strlen_done
|
||||
увеличить р8
|
||||
увеличить рдикс
|
||||
переход strlen
|
||||
|
||||
strlen_done:
|
||||
переместить_имм раикс,1
|
||||
переместить рсиай, рдиай
|
||||
переместить_имм рдиай,1
|
||||
вызов_системы
|
||||
исключающее_или рдиай, рдиай
|
||||
переместить_имм раикс,60
|
||||
вызов_системы
|
||||
|
||||
no_arg:
|
||||
переместить_имм раикс,1
|
||||
переместить_имм рдиай,1
|
||||
переместить_имм рсиай, msg_no_arg
|
||||
переместить_имм рдикс,26
|
||||
вызов_системы
|
||||
переместить_имм рдиай,1
|
||||
переместить_имм раикс,60
|
||||
вызов_системы
|
||||
|
||||
.данные
|
||||
msg_no_arg: .строка "Ошибка не передан аргумент\n"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🐛 Отладка и проверка
|
||||
|
||||
### Просмотр сгенерированного кода
|
||||
|
|
|
|||
Loading…
Reference in a new issue