Global instruction add
This commit is contained in:
parent
f2773b1608
commit
51cac4b381
13
BINCOM.md
13
BINCOM.md
@ -111,4 +111,15 @@ void (*operations[])(void) = {
|
|||||||
- **MOV 0x1E** - Переключить стек (виртуальный/обычный). Формат: **0x1E**
|
- **MOV 0x1E** - Переключить стек (виртуальный/обычный). Формат: **0x1E**
|
||||||
## Функции
|
## Функции
|
||||||
- **CALL 0x1F** - Аналогична инструкции **JMP**, но сохраняет стек вызовов (32 элемента). Формат: **0x1F**
|
- **CALL 0x1F** - Аналогична инструкции **JMP**, но сохраняет стек вызовов (32 элемента). Формат: **0x1F**
|
||||||
- **RET 0x20** - Возврат из функции. Формат: **0x20**
|
- **RET 0x20** - Возврат из функции. Формат: **0x20**
|
||||||
|
## Символы
|
||||||
|
> [!NOTE]
|
||||||
|
> Инструкция **GLOBAL** нужна для обозначения точки входа.
|
||||||
|
> Это комбинация инструкций **PUSH** и **JMP**. Пример:
|
||||||
|
> ```asm
|
||||||
|
> global db main
|
||||||
|
> ; Код, не исполняемый при старте
|
||||||
|
> main:
|
||||||
|
> ; Точка входа
|
||||||
|
> ```
|
||||||
|
- **GLOBAL** - Ассемблерная инструкция, означает метку для старта.
|
||||||
@ -12,7 +12,7 @@
|
|||||||
* XX - шестнадцатиричные данные
|
* XX - шестнадцатиричные данные
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const size_t ntsys_command_count = 0x22;
|
const size_t ntsys_command_count = 0x23;
|
||||||
|
|
||||||
char* ntsys_asm_table[] = {
|
char* ntsys_asm_table[] = {
|
||||||
"push=00:T:D",
|
"push=00:T:D",
|
||||||
@ -56,6 +56,7 @@ char* ntsys_asm_table[] = {
|
|||||||
"set=1D",
|
"set=1D",
|
||||||
"mov=1E",
|
"mov=1E",
|
||||||
|
|
||||||
|
"global=00:T:D0D",
|
||||||
"call=1F",
|
"call=1F",
|
||||||
"ret=20",
|
"ret=20",
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
start:
|
global db main
|
||||||
push db main
|
|
||||||
jmp
|
|
||||||
|
|
||||||
log:
|
log:
|
||||||
push byte 0x00
|
push byte 0x00
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user