Estudo
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 B PSW etc. Para a exposição das instruções, utilizar-se-ão as seguintes abreviaturas: Rn direto, dir @Ri #data, #dt #data16, #dt16 adr16 adr11 rel bit A Acc → → → → → → → → → → → qualquer registro R0, R1, ...,R7 endereço da RAM interna (8 bits) @R0 ou @R1, usado para endereçamento indireto constante de 8 bits (byte) constante de 16 bits endereço de 16 bits (endereça 64 KB) endereço de 11 bits (endereça 2 KB) deslocamento relativo (complemento a 2: -128 a +127) endereço de um bit da RAM interna acumulador (registro) endereço do acumulador. EQU EQU EQU 0E0H 0F0H 0D0H
MICROCONTROLADORES (MCS-51)
4 - 1
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 dado imediato. Deve-se notar a presença do sinal # que indica operação imediata. Direto → O operando especifica um