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) |