44 lines
2.5 KiB
Markdown
44 lines
2.5 KiB
Markdown
# Assemly NTSYS
|
||
Это справочник по ассемблеру в **NTSYS**. Тут представлены основные комманды и описание синтаксиса.
|
||
## Операторы
|
||
Основной программной единицей является оператор. Это одно из зарезервированных слов. Названия операторов те же, что и в [BINCOM](https://gitlabor.ru/German/ntsys/src/branch/main/BINCOM.md), но в нижнем регистре (нижнее подчеркивание заменено точкой). Их синтаксис следующий:
|
||
```asm
|
||
оператор операнд1, операнд2, ... операндN
|
||
```
|
||
Операнды нужны для передачи данных в операторы.
|
||
## Метки
|
||
Метки используются для относительного перехода в любое место программы. Они состоят из алфавитно-цифровых символов, а также нижнего подчеркивания и знака минус, двоеточия и переноса строки:
|
||
```asm
|
||
ИмяМетки:
|
||
; ... код
|
||
```
|
||
Для записи метки используется специальный тип данных - **db**:
|
||
```asm
|
||
main:
|
||
push db main
|
||
jmp
|
||
```
|
||
## Комментарии
|
||
Комментарий нужен для создания пояснения к коду. Любой текст в комментарии игнорируется.
|
||
Пример:
|
||
```asm
|
||
; Это комментарий
|
||
; Это тоже
|
||
```
|
||
## Типы данных
|
||
Основные типы данных:
|
||
- ```byte``` - 8bit без знака
|
||
- ```word``` - 16bit без знака
|
||
- ```dword``` - 32bit без знака
|
||
- ```qword``` - 64bit без знака
|
||
- ```sbyte``` - 8bit знаковый
|
||
- ```sword``` - 16bit знаковый
|
||
- ```sdword``` - 32bit знаковый
|
||
- ```sqword``` - 64bit знаковый
|
||
- Строки - [ASCIIZ-строка](https://ru.wikipedia.org/wiki/%D0%9D%D1%83%D0%BB%D1%8C-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B0?ysclid=mmhsfli7p5897685524)
|
||
Строки заключаются в двойные кавычки:
|
||
```
|
||
push.string "Строка"
|
||
```
|
||
Поддерживаются следующие управляющие символы: ```\0, \a, \b, \t, \n, \v, \f, \r, \\, \"```.
|