Principal > Documentos > Resumo das instruções do processador LEG
Lista das instruções do processador LEG
Transferência de dados
Comando | Operação | Flags |
mov rd,rf | Copia registrador | -- |
set rd,expr8 | Carrega registrador com valor imediato 8 bits | -- |
set rd,expr32 | Carrega registrador com valor imediato 32 bits | -- |
ld rd,expr32 | Carrega registrador, endereçamento direto | -- |
ld rd, [rf+expr8] | Carrega registrador, endereçamento indireto por registrador | -- |
ldb rd, expr32 | Carrega registrador com byte, endereçamento direto | -- |
ldb rd, [rf+expr8] | Carrega registrador com byte, endereçamento indireto por registrador | -- |
st expr32,rf | Armazena registrador, endereçamento direto | -- |
st [rd+expr], rf | Armazena registrador, endereçamento indireto por registrador | -- |
stb expr32,rf | Armazena byte de registrador, endereçamento direto | -- |
stb [rd+expr], rf | Armazena byte de registrador, endereçamento indireto por registrador | -- |
Instruções Aritméticas
Comando | Operação | Flags |
add d,expr8 | Soma registrador com valor imediato 8 bits | CNVZ |
add rd,rf | Soma registrador com registrador | CNVZ |
sub rd,expr8 | Subtrai de registrador com valor imediato 8 bits | CNVZ |
sub rd,rf | Subtrai registrador de registrador | CNVZ |
cmp rd,expr8 | Compara registrador com valor imediato 8 bits | CNVZ |
cmp rd,rf | Compara registrador com registrador | CNVZ |
Instruções Lógicas
Comando | Operação | Flags |
and rd,rf | E-lógico de registrador com registrador | NZ (C,V ← 0) |
or rd,rf | OU-lógico de registrador com registrador | NZ (C,V ← 0) |
xor rd,rf | OU-Exclusivo-lógico de registrador com registrador | NZ (C,V ← 0) |
tst rd,rf | Testa bits (E-lógico sem atribuição) registrador com registrador | NZ (C,V ← 0) |
not rd | Negação (inverte bits) de registrador | NZ (C,V ← 0) |
Instruções de deslocamento e rotação
Comando | Operação | Flags |
shl rd,imd5 | Deslocamento para a esquerda, endereçamento imediato | CNZ (V ← 0) |
shl rd,rf | Deslocamento para a esquerda, por registrador | CNZ (V ← 0) |
shr rd,imd5 | Deslocamento para a direita, endereçamento imediato | CNZ (V ← 0) |
shr rd,rf | Deslocamento para a direita, por registrador | CNZ (V ← 0) |
sar rd,imd5 | Deslocamento aritmético para a direita, endereçamento imediato | CNZ (V ← 0) |
sar rd,rf | Deslocamento aritmético para a direita, por registrador | CNZ (V ← 0) |
rol rd,imd5 | Rotação para a esquerda, endereçamento imediato | CNZ (V ← 0) |
rol rd,rf | Rotação para a esquerda, por registrador | CNZ (V ← 0) |
ror rd,imd5 | Rotação para a direita, endereçamento imediato | CNZ (V ← 0) |
ror rd,rf | Rotação para a direita, por registrador | CNZ (V ← 0) |
rcl rd,imd5 | Rotação com vai-um para a esquerda, endereçamento imediato | CNZ (V ← 0) |
rcl rd,rf | Rotação com vai-um para a esquerda, por registrador | CNZ (V ← 0) |
rcr rd,imd5 | Rotação com vai-um para a direita, endereçamento imediato | CNZ (V ← 0) |
rcr rd,rf | Rotação com vai-um para a direita, por registrador | CNZ (V ← 0) |
Instruções de desvio
Comando | Operação | Flags |
jmp rótulo | desvio incondicional | -- |
jmp rd | desvio incondicional, por registrador | -- |
jc rótulo_perto | desvia se vai-um (menor sem sinal) | -- |
jnc rótulo_perto | desvia se não vai-um (maior ou igual sem sinal) | -- |
jz rótulo_perto | desvia se zero | -- |
jnz rótulo_perto | desvia se diferente de zero | -- |
jo rótulo_perto | desvia se overflow (com sinal) | -- |
jno rótulo_perto | desvia se não overflow (com sinal) | -- |
js rótulo_perto | desvia se sinal igual a um | -- |
jns rótulo_perto | desvia se sinal igual a zero | -- |
jl rótulo_perto | desvia se menor (com sinal) | -- |
jle rótulo_perto | desvia se menor ou igual (com sinal) | -- |
jg rótulo_perto | desvia se maior (com sinal) | -- |
jge rótulo_perto | desvia se maior ou igual (com sinal) | -- |
ja rótulo_perto | desvia se acima (maior sem sinal) | -- |
jna rótulo_perto | desvia se não acima (menor ou igual sem sinal) | -- |
Instruções que usam a pilha
Comando | Operação | Flags |
push rf | Empilha registrador | -- |
pop rd | Desempilha registrador | -- |
call rótulo | Chamada de procedimento | -- |
call rf | Chamada de procedimento, por registrador | -- |
ret | Retorno de procedimento | -- |
Instruções de entrada e saída
Comando | Operação | Flags |
in rd,porta | Leitura de porta de E/S, endereçamento imediato | -- |
in rd,rf | Leitura de porta de E/S, por registrador | -- |
inb rd,porta | Leitura de byte de porta de E/S, imediato | -- |
inb rd,rf | Leitura de byte de porta de E/S, por registrador | -- |
out porta,rf | Escrita em porta de E/S, endereçamento imediato | -- |
out rd,rf | Escrita em porta de E/S, por registrador | -- |
outb porta,rf | Escrita em byte de porta de E/S, endereçamento imediato | -- |
outb rd,rf | Escrita em byte de porta de E/S, por registrador | -- |
Instruções diversas
Comando | Operação | Flags |
pushf | Empilha flags | -- |
popf | Desempilha flags | todas |
sys | Chamada de sistema | IS |
iret | Retorno de interrupção | todas |
clc | Desliga vai-um | C ← 0 |
stc | Liga vai-um | C ← 1 |
cli | Desabilita interrupções | I ← 0 |
sti | Habilita interrupções | I ← 1 |
wait | Hiberna o processador | I ← 0 |
drop | Dispensa privilégios | S ← 0 |
hlt | Para o processador | -- |