Assembly DOCS
This commit is contained in:
parent
8d9e53a1b1
commit
fce6aa1630
10
ASM.md
Normal file
10
ASM.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Assemly NTSYS
|
||||||
|
Это справочник по ассемблеру в **NTSYS**. Тут представлены основные комманды и описание синтаксиса.
|
||||||
|
## Операторы
|
||||||
|
Основной программной единицей является оператор. Это одно из зарезервированных слов. Названия операторов те же, что и в [BINCOM](https://gitlabor.ru/German/ntsys/src/branch/main/BINCOM.md), но в нижнем регистре.
|
||||||
|
## Метки
|
||||||
|
Метки используются для относительного перехода в любое место программы. Они состоят из алфавитно-цифровых символов, двоеточия и переноса строки:
|
||||||
|
```asm
|
||||||
|
имя_метки:
|
||||||
|
; ... код
|
||||||
|
```
|
||||||
@ -5,5 +5,7 @@
|
|||||||
> Это бета-версия. Документация ещё не готова.
|
> Это бета-версия. Документация ещё не готова.
|
||||||
- [Инструкция по установке](https://gitlabor.ru/German/ntsys/src/branch/main/INSTALL.md)
|
- [Инструкция по установке](https://gitlabor.ru/German/ntsys/src/branch/main/INSTALL.md)
|
||||||
- [Справочник по опциям](https://gitlabor.ru/German/ntsys/src/branch/main/OPTIONS.md)
|
- [Справочник по опциям](https://gitlabor.ru/German/ntsys/src/branch/main/OPTIONS.md)
|
||||||
- [Бинарная структура](https://gitlabor.ru/German/ntsys/src/branch/main/BINARY.md)
|
- [Двоичные коды комманд](https://gitlabor.ru/German/ntsys/src/branch/main/BINCOM.md)
|
||||||
- [Двоичные коды комманд](https://gitlabor.ru/German/ntsys/src/branch/main/BINCOM.md)
|
- [Ассемблер](https://gitlabor.ru/German/ntsys/src/branch/main/ASM.md)
|
||||||
|
- [Примеры](https://gitlabor.ru/German/ntsys/src/branch/main/EXAMPLES.md)
|
||||||
|
- [Бинарная структура](https://gitlabor.ru/German/ntsys/src/branch/main/BINARY.md)
|
||||||
@ -48,6 +48,7 @@ char* ntsys_get_str(char* ptr, FILE* fp) {
|
|||||||
while (i < strlen(ptr)) {
|
while (i < strlen(ptr)) {
|
||||||
if (ptr[i] == '"' && ptr[((i == 0) ? 1 : i) - 1] != '\\') {isStr = !isStr;}
|
if (ptr[i] == '"' && ptr[((i == 0) ? 1 : i) - 1] != '\\') {isStr = !isStr;}
|
||||||
if ((ptr[i] == ';' || ptr[i] == '#') && isStr == 0) ptr[i] = '\0';
|
if ((ptr[i] == ';' || ptr[i] == '#') && isStr == 0) ptr[i] = '\0';
|
||||||
|
if ((ptr[i] == ',') && isStr == 0) ptr[i] = ' ';
|
||||||
i ++;
|
i ++;
|
||||||
}
|
}
|
||||||
return ptr;
|
return ptr;
|
||||||
@ -396,6 +397,7 @@ int __ntsys_arg_function_loader(ntsys_argument_parser_t* parser) {
|
|||||||
if (select_argument(parser) == EXIT_FAILURE) return EXIT_FAILURE;
|
if (select_argument(parser) == EXIT_FAILURE) return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
if (parser->is_rewrite == 0) *parser->file_size = ftell(parser->fp) + 1;
|
if (parser->is_rewrite == 0) *parser->file_size = ftell(parser->fp) + 1;
|
||||||
|
fflush(parser->fp);
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
main: ; Метка main
|
main: ; Метка main
|
||||||
push.string "Hello, world!\n" ; Записываем строку
|
push.string "Hello, world!\n" ; Записываем строку
|
||||||
push byte 0x00 ; Запись номера SYSCALL
|
push byte, 0x00 ; Запись номера SYSCALL
|
||||||
syscall ; Системный вызов
|
syscall ; Системный вызов
|
||||||
BIN
example.exe
Normal file
BIN
example.exe
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user