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