Global instruction add

This commit is contained in:
german 2026-03-11 18:39:52 +04:00
parent f2773b1608
commit 51cac4b381
4 changed files with 15 additions and 5 deletions

View File

@ -111,4 +111,15 @@ void (*operations[])(void) = {
- **MOV 0x1E** - Переключить стек (виртуальный/обычный). Формат: **0x1E**
## Функции
- **CALL 0x1F** - Аналогична инструкции **JMP**, но сохраняет стек вызовов (32 элемента). Формат: **0x1F**
- **RET 0x20** - Возврат из функции. Формат: **0x20**
- **RET 0x20** - Возврат из функции. Формат: **0x20**
## Символы
> [!NOTE]
> Инструкция **GLOBAL** нужна для обозначения точки входа.
> Это комбинация инструкций **PUSH** и **JMP**. Пример:
> ```asm
> global db main
> ; Код, не исполняемый при старте
> main:
> ; Точка входа
> ```
- **GLOBAL** - Ассемблерная инструкция, означает метку для старта.

BIN
ntsys

Binary file not shown.

View File

@ -12,7 +12,7 @@
* XX - шестнадцатиричные данные
*/
const size_t ntsys_command_count = 0x22;
const size_t ntsys_command_count = 0x23;
char* ntsys_asm_table[] = {
"push=00:T:D",
@ -56,6 +56,7 @@ char* ntsys_asm_table[] = {
"set=1D",
"mov=1E",
"global=00:T:D0D",
"call=1F",
"ret=20",

View File

@ -1,6 +1,4 @@
start:
push db main
jmp
global db main
log:
push byte 0x00