2.8 KiB
2.8 KiB
Примеры на ассемблере NTSYS
Это небольшой набор примеров для ассемблера NTSYS. Для их компиляции используйте:
ntsys --asm имя_файла.asm --out имя_файла.exe --mem 128
Hello, world!
main: ; Метка main
push.string "Hello, world!\n" ; Записываем строку
push byte, 0x00 ; Запись номера SYSCALL
syscall ; Системный вызов
Выводим имя пользователя
main: ; Метка main
push.string "echo \"Ваше имя: $USER\"\n" ; Запрос к системе
push byte, 0x03 ; Код
syscall ; Вызов
Пример программной задержки
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 ; Повторяем цикл