Conjunto de instruções do μP8085 (pdf 135KB)

Propaganda
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
• Símbolos e abreviaturas utilizadas na descrição das instruções
acumulador
addr
data
data 16
byte 2
byte 3
port
r, r1, r2
rp
rh
rl
PC
SP
Ai
F
PSW
()
←
↔
∧
∨
⊕
+
–
¯
n
registo A
endereço de 16 bits
quantidade de 8 bits
quantidade de 16 bits
segundo byte da instrução
terceiro byte da instrução
endereço de 8 bits de um dispositivo de entrada/saída (I/O)
um dos registos A, B, C, D, E, H, L
um dos pares de registos:
B ≡ par B, C (byte mais signif. - B; byte menos signif. - C)
D ≡ par D, E (byte mais signif. - D; byte menos signif. - E)
H ≡ par H, L (byte mais signif. - H; byte menos signif. - L)
ou o ponteiro da pilha (stack pointer) SP (registo de 16 bits)
o primeiro registo (mais significativo) de um par de registos
o segundo registo (menos significativo) de um par de registos
registo contador de programa (program counter)de 16 bits:
PCH - byte mais significativo; PCL - byte menos significativo
registo ponteiro da pilha (stack pointer) de 16 bits:
SPH - byte mais significativo; SPL - byte menos significativo
bit i do acumulador (LSB – i = 0; MSB – i = 7)
byte que inclui o valor dos flip-flops das flags de condição:
Z – flag zero
bit 6 do byte F
S – flag sinal
bit 7 do byte F
P – flag paridade
bit 2 do byte F
CY – flag carry (transporte) bit 0 do byte F
AC – flag carry auxiliar
bit 4 do byte F
os outros bits de F são dont cares, ou seja F ≡ S Z – AC – P – CY
palavra de estado do microprocessador de 16 bits, constituída por:
A - byte mais significativo; F - byte menos significativo
conteúdo da posição de memória cujo endereço está entre parênteses
ou conteúdo de registos que figuram entre parênteses
transferência de informação entre registos ou entre registos e memória
troca de informação
AND (produto lógico)
OR (soma lógica)
EXOR
adição
subtracção (supõe-se uma representação em complemento para 2)
complementação lógica ou complemento para 1 aritmético
número de reinicialização (RST - restart) de 0 a 7
1/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
• Formatos de instruções e dados
A memória utilizada num sistema baseado no µP8085 está organizada em bytes. A cada byte
corresponde uma posição na memória, definida por um endereço binário de 16 bits, pelo que o
µP8085 pode endereçar até 64 KBytes (1 K = 210) de memória. Esta memória pode ser de
leitura/escrita (tipo RAM) ou só de leitura (tipo ROM).
Os dados são armazenados na forma de binários inteiros de 8 bits (Fig. 1).
Fig. 1
Fig. 2
Uma instrução do µP8085 tem um comprimento variável, podendo ser constituída por um, dois ou
três bytes. As instruções com mais de um byte devem ser armazenadas em posições de memória
consecutivas; o endereço do primeiro byte é sempre utilizado como o endereço da instrução.
O formato exacto da instrução depende da operação que se pretende executar (Fig. 2).
• Modos de endereçamento
Os dados sobre os quais uma determinada instrução vai operar estão armazenados ou na memória
ou nos registos do µP8085. Quando são utilizados dados numéricos com mais de um byte, os dados,
tal como as instruções, são armazenados em posições consecutivas da memória, com o byte menos
significativo em primeiro lugar. O µP8085 tem quatro modos diferentes para endereçar dados
armazenados na memória ou em registos:
ƒ Directo – Os bytes 2 e 3 da instrução contêm o endereço de memória exacto do dado (os bits
menos significativos do endereço estão no byte 2 e os mais significativos no byte
3)
ƒ Por registo – A instrução especifica o registo ou par de registos onde se encontram os dados
2/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
ƒ Indirecto através de registo – A instrução especifica um par de registos que contem o
endereço de memória onde se localiza o dado (os bits mais significativos do
endereço estão no primeiro registo do par e os menos significativos no segundo)
ƒ Imediato – A própria instrução contem o dado. Pode ser uma quantidade de 8 ou 16 bits
(neste caso primeiro o byte menos significativo e segundo o menos significativo)
Excepto ser for condicionado por uma interrupção ou instrução de bifurcação, a execução das
instruções de um programa desenvolve-se sequencialmente através de posições consecutivamente
incrementadas da memória. Uma instrução de bifurcação pode especificar o endereço da próxima
instrução a ser executada por um de dois modos:
ƒ Directo – A instrução de bifurcação contem o endereço da próxima instrução a ser
executada (excepto para a instrução RST, o byte 2 contem a parte baixa do
endereço e o byte 3 a parte alta)
ƒ Indirecto através de registo – A instrução de bifurcação indica um par de registos o qual
contem o endereço da próxima instrução a ser executada (a parte alta do endereço
está no primeiro registo do par e a parte baixa no segundo)
A instrução RST é uma instrução especial de chamada a subrotina com apenas um byte
(normalmente utilizada em sequências de interrupção). A instrução RST inclui um campo de três
bits; o controlo do programa é transferido para a instrução cujo endereço é oito vezes o conteúdo
desse campo de três bits.
• Flags de condição
Há cinco flags de condição associadas à execução das instruções do µP8085: zero (Z), sinal (S),
paridade (P), carry (CY) e carry auxiliar (AC). A cada uma dessas flags está associado um flipflop. Fazer o set da flag corresponde a fazer o set do respectivo flip-flop; o reset da flag
corresponde ao reset do flip-flop.
Caso não seja indicada outra acção, quando uma instrução afecta uma flag, afecta-a da seguinte
maneira:
Zero
se o resultado da execução de uma instrução tem o valor zero, então faz-se o set
desta flag; caso contrário, é feito o reset.
Sinal
se o bit mais significativo do resultado da operação for 1, então faz-se o set desta
flag; caso contrário, é feito o reset.
Paridade se o resultado da operação tiver paridade par, então faz-se o set desta flag; caso o
resultado tenha paridade ímpar, é feito o reset da flag.
Carry
se da execução da instrução resultar um transporte (carry na adição e borrow na
subtracção ou comparação) para além do bit mais significativo, então faz-se o set
desta flag; caso contrário, é feito o reset.
Carry auxiliar
se a execução de uma instrução causou um transporte do bit 3 para o bit 4 do
valor resultante, então faz-se o set desta flag; caso contrário, é feito o reset. Esta
flag é afectada por adições, subtracções, incrementos, decrementos, comparações e
operações lógicas, mas utiliza-se principalmente com adições e incrementos que
precedem a instrução DAA (ajuste decimal do acumulador).
3/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
• Grupos do conjunto de instruções
Grupo de transferência de dados – Promove o movimento de dados entre registos ou entre
registos e memória. Inclui movimentos, carregamentos, armazenamentos e trocas.
Grupo aritmético – Soma, subtrai, incrementa ou decrementa dados em registos ou
memória.
Grupo lógico – Faz AND’s, OR’s, XOR’s, comparações, rotações ou complementação de
dados em registos ou entre um registo e memória.
Grupo de bifurcação – Inicia saltos condicionais ou incondicionais, chamadas a subrotinas,
retornos das subrotinas e restarts (reinicializações).
Grupo da stack (pilha), I/O e controlo da máquina – Inclui instruções para manutenção
da pilha, leitura dos portos de entrada, escrita nos portos de saída, para ajuste e
leitura das máscaras de interrupção, e para fazer o set e reset das flags.
Em seguida apresentam-se quadros das instruções com as suas mnemónicas, seguindo o formato da
linguagem assembly que é processada pelo assembler fornecido para desenvolvimento de sistemas
microcomputadores baseados no µP8085.
A última coluna destes quadros representa os seguintes tipos de ciclos máquina:
Q
S
R
W
I
O
B
Busca do código de operação com quatro períodos de relógio (Estados T).
Busca do código de operação com seis períodos de relógio (Estados T).
Leitura da memória.
Escrita na memória.
Leitura nos portos de entrada.
Escrita nos portos de saída.
Bus inactivo.
4/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
5/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
6/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
7/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
8/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
9/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
10/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
11/12
SISTEMAS DIGITAIS II
UNIVERSIDADE DA BEIRA INTERIOR
FOLHAS DE APOIO: CONJUNTO DE INSTRUÇÕES DO µP8085
12/12
Download