2

Instruções e OPCodes

Instruções da SlangVM2.1

A VM executa assembly textual. Labels são declaradas com label nome e usadas por saltos e chamadas.

InstruçãoDescriçãoExemplo
pushEmpilha constantepush 10
popRemove topo da pilhapop
dupDuplica topo da pilhadup
get_localEmpilha um slot localget_local 0
set_localCopia topo para slot localset_local 1
addSomaadd
subSubtraisub
mulMultiplicamul
divDividediv
modResto inteiromod
negNegação numéricaneg
notNegação lógicanot
eqIgualdadeeq
neDiferençane
ltMenor quelt
leMenor ou igualle
gtMaior quegt
geMaior ou igualge
jumpSalto incondicionaljump L0
jump_if_falseSalta se topo for falsojump_if_false L1
callChama funçãocall 2 fn_somar
retRetorna da funçãoret
printImprime topo da pilhaprint
haltEncerra a VMhalt

Exemplo2.1.1

call 0 fn_main
halt

label fn_main
push 1
push 2
push 3
mul
add
print
push null
ret