Instruções - Lucas-S-T/LittleLanguage GitHub Wiki

Tabela de instruções

Use o caracter .(ponto) antes de cada instrução.

Nome Completo OpCode Argumentos Exemplo Descrição
Allocate ALC (2) ID, SIZE ALC HW 11 Aloca 11 bytes no endereço de memória de HW
Free FREE (1) ID FREE HW Libera a memória alocada em HW
Dump String DS (2) ID, STR DS HW "Hello World" Salva "Hello World" em HW
Out String OUTS (1) ID OUTS HW Imprime o conteúdo de HW na tela
Allocate Int ALI (1) ID ALI HW Aloca 4 bytes no endereço de memória de HW
Load Int Const LIC (2) ID, INT LIC HW 2 Salva o valor inteiro constante 2 em HW
Out Int OUTI (1) ID OUTS HW Imprime o conteúdo de HW na tela em decimal
Function FUN (1) ID FUN HW: Declara uma função com o nome HW
Return RET (0) RET Retorna a função
Call Function CALL (1) ID CALL HW Chama a função HW
Push Stack PUSH (1) ID PUSH HW Salva o conteúdo de HW na Stack
Pop Stack POP (1) ID POP HW Aloca e salva o conteúdo da Stack em HW
Include INCLUDE (1) STR .INCLUDE "hw.ll" Inclui o arquivo externo "hw.ll"
Integer Add IADD (2) ID ID .IADD a b a = a+b
Integer Mul IMUL (2) ID ID .IMUL a b a = a*b
Integer Div IDIV (2) ID ID .IDIV a b a = a/b
Integer Sub ISUB (2) ID ID .ISUB a b a = a-b
Size SIZE (1) ID .SIZE a Salva na Stack o tamanho de a em bytes
Relative Jump RJMP (1) INT .RJMP 2 PC = PC+2 (Pula a próxima instrução)
Conditional Jump CJMP (1) INT .CJMP 2 se Stack !=0 -> PC = PC+2 (Pula a próxima instrução)