Cap4
CONJUNTO DE INSTRUÇÕES
CAPÍTULO 4
CONJUNTO DE INSTRUÇÕES
4.1. INTRODUÇÃO
Todos os membros da família MCS-51 executam o mesmo conjunto de instruções. As instruções são otimizadas para aplicações de controle de 8 bits. Elas permitem um rápido endereçamento da RAM interna, facilitando operações byte a byte em estruturas de dados pequenas.
O conjunto de instruções também oferece um grande suporte para manipulações e operações de variáveis de um bit, facilitando os sistemas lógicos que necessitam de operações booleanas.
A seguir serão mostradas todas as instruções da família MCS-51. Para uma descrição mais detalhada dessas instruções deve-se consultar o manual do MCS-51. (Aqui se supõe que o leitor tenha uma pequena experiência em programação assembly).
Para ajudar os programadores, os programas montadores para o MCS-51 têm os endereços dos SFR e dos bits previamente declarados. É como se em todo programa já existisse as pseudo-instruções: Acc
EQU
0E0H
B
EQU
0F0H
PSW
EQU
0D0H
etc.
Para a exposição das instruções, utilizar-se-ão as seguintes abreviaturas:
Rn
→
qualquer registro R0, R1, ...,R7
direto, dir
→
endereço da RAM interna (8 bits)
@Ri
→
@R0 ou @R1, usado para endereçamento indireto
#data, #dt
→
constante de 8 bits (byte)
#data16, #dt16
→
constante de 16 bits
adr16
→
endereço de 16 bits (endereça 64 KB)
adr11
→
endereço de 11 bits (endereça 2 KB)
rel
→
deslocamento relativo (complemento a 2: -128 a +127)
bit
→
endereço de um bit da RAM interna
A
→
acumulador (registro)
Acc
→
endereço do acumulador.
MICROCONTROLADORES (MCS-51)
4 - 1
CAPÍTULO IV
CONJUNTO DE INSTRUÇÕES
4.2. MODOS DE ENDEREÇAMENTO
De acordo com o "Data Sheet" do MCS-51, existem 6 modos de endereçamento com a seguinte nomenclatura :
→
Imediato
→
Direto
→
Indireto
→
Registrador
→
Registrador Específico
→
Indexado
Imediato → O valor da constante é colocado no opcode.
MOV
A, #100
Carrega 100 no acumulador (Acc=100). O byte 100 é um