Обновить ридми после русификации имен скриптов
This commit is contained in:
parent
3c751e10ad
commit
b452f0bae6
163
README.md
163
README.md
|
|
@ -404,169 +404,6 @@ _start: ; метка _start
|
||||||
| `.рездс` | Резервирование двойных слов в BND | `.рездс 25` |
|
| `.рездс` | Резервирование двойных слов в BND | `.рездс 25` |
|
||||||
| `.резкс` | Резервирование квадрослов в BND | `.резкс 10` |
|
| `.резкс` | Резервирование квадрослов в 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