ntsys/EXAMPLES.md
2026-03-09 17:34:30 +04:00

49 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Примеры на ассемблере NTSYS
Это небольшой набор примеров для ассемблера NTSYS. Для их компиляции используйте:
```bash
ntsys --asm имя_файла.asm --out имя_файла.exe --mem 128
```
## Hello, world!
```asm
main: ; Метка main
push.string "Hello, world!\n" ; Записываем строку
push byte, 0x00 ; Запись номера SYSCALL
syscall ; Системный вызов
```
## Выводим имя пользователя
```asm
main: ; Метка main
push.string "echo \"Ваше имя: $USER\"\n" ; Запрос к системе
push byte, 0x03 ; Код
syscall ; Вызов
```
## Пример программной задержки
```asm
main: ; Метка main
push.string "This is example of wait!\n" ; Строка
push byte, 0x00 ; Номер
syscall ; Системный вызов
mload: ; Функция mload
push word, 0x00 ; Данные для записи
push word, 0x00 ; Адрес в VRAM
mwrt word ; Комманда записи
lwait: ; Цикл задержки
push db, lwait ; Его адрес
push word, 0x01 ; Увеличивать счетчик на 1
push word, 0x00 ; Счетчик по адресу 0x00
mread word ; Читаем
add word ; Складываем
push word, 0x00 ; Адрес для записи
mwrt word ; Записываем обратно
push word, 0x00 ; Адрес
mread word ; Читаем
push word, 0xFFFF ; Значение для сравнения
neq word ; Если не равно - повторить цикл
mloop: ; Главный цикл
pop byte ; Убираем оставщийся байт
push db, main ; Адрес main
jmp ; Повторяем цикл
```