Introdução à Maleta MK-904 de Microprocessador Informações

Propaganda
Introdução à Maleta MK-904 de
Microprocessador
Informações Exibidas no Display LCD
No display acima, o caractere designador “H”, “@”, “L”, “#” ou “,” aparece
automaticamente quando necessário. Os usuários não precisam digitar esses
caracteres.
Sistema de Numeração Hexadecimal
Decimal Binário Hexadecimal
0
0
0
1
1
1
2
10
2
3
11
3
4
100
4
5
101
5
6
110
6
7
111
7
8
1000
8
9
1001
9
10
1010
A
11
1011
B
12
1100
C
13
1101
D
14
1110
E
15
1111
F
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Para facilitar nesta apostila, os números são representados pelo seguinte
sistema de numeração:
Números decimais:
Como de costume
Números binários:
Exemplo:
Dentro de parênteses:
(0010) para números de 4 bits
(00001111) para números de 8 bits
Números hexadecimais: Um número sucedido pela letra “H”
AH é igual (1010)
3FH é igual a (00111111)
REFÊNCIA
Conjunto de Instruções
Nesta seção, todas as instruções disponíveis neste kit são classificadas e
listadas na seguinte ordem:
Instruções de Entrada / Saída
Instrução de Mover
Instruções Aritméticas
Instruções de Deslocamento
Instruções de Incremento / Decremento
Instruções de Saltar
Instruções de Comparação
Instruções de Beep
Instruções de Controle de Tempo
Outras Instruções
IN, OUT
MOV
ADD, SUB
ROR, ROL
INC, DEC
JMP, JZ, JNZ, JC, JNC
CMP
BOM, BOF
TM1, TM2
STP, NOP, SEC, HEX
Cada grupo de instrução é descrito pela instrução com os seguintes
conteúdos:
Código: Código de instrução (mnemônico).
Descrição: É fornecida uma descrição geral das funções.
Formato: Descreve o formato ou a orde de entrada do código de instrução e
operandos no microprocessador. Algumas instruções tem dois ou mais formatos
diferentes, identificados por números de sufixo seqüenciais.
Função: Descreve o significado do formato.
Exemplo: Mostra uma referência.
Indicadores de “Vai-Um” (Carry-Flag) e de Zero (Zero-Flag)
Quando dois valores de dados são adicionados e sua soma excede o máximo
valor FF em hexadecimal, ou se a subtração de um dado B de um dado A resulta em
um valor negativo, este fato é armazenado em um flip-flop chamado indicador de
“Vai-UM” (Carry-Flag) para referências posteriores no programa.
Em outras palavras, se alguma operação aritmética causou um transbordo ( o
resultado ultrapassa o valor máximo FF em hexadecimal permitindo para
armazenamento numa memória de 8 bits), o Carry-Flag recebe o valor 1. Se nenhum
transbordo ocorreu, o Carry-Flag recebe o valor 0.
Prática de Microprocessadores II
Prof. Ricardo de Macedo
O indicador de “Vai-Um” (Carry-Flag) também é usado para armazenar dados
de 1 bit quando você executa alguma instrução de deslocamento (ROR ou ROL).
Se dois valores de dados comparados pela instrução CMP são iguais, a
subtração dos dois dados resulta um zero (este calculo é feito internamente sem
modificar nenhum dado nos registradores). Similarmente, se uma instrução lógica
AND é executada para dois dados, por exemplo (00011000) e (11100111), o
resultado será zero (o valor resultante do registrador será (00000000)).
Esses fatos também são armazenados num flip-flop chamado de indicador de
Zero (Zero-Flag) para referências posteriores no programa.
A condição dos indicadores de “Vai-Um” e de Zero é critica para qualquer
programa e é determinada por instruções como JC (Salta se Carry-Flag é 1) ou JNZ
(Salta se Zero-Flag é 0).
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Entrada / Saída
Código: IN
Descrição: Transfere dados de uma porta de entrada para o acumulador A ou
registrador.
Porta de Entrada Dado de Entrada
IN1
bit-0
IN2
bit-1
IN3
bit-2
IN4
bit-3
Formato 1: IN A
Obtém dados de entrada para o acumulador A.
Ex. IN A
Formato 2: IN mem
Obtém dados de entrada para a memória.
Ex. IN C
Código: OUT
Descrição: Transfere dados do acumulador A ou registrador para a porta de saída
Dado de Saída Porta de Saída
bit-0
OUT1
bit-1
OUT2
bit-2
OUT3
bit-3
OUT4
bit-4
OUT5
bit-5
OUT6
bit-7
OUT7
Formato 1: OUT A
Transfere os dados do acumulador A para a porta de saída.
Ex. OUT A
Formato 2: IN mem
Transfere o conteúdo de um registrador (B a F) para a porta de saída.
Ex. OUT F
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Mover
Código: MOV
Descrição: Move valores de dados de um registrador para outro. Cinco formatos de
instrução são disponíveis.
Formato 1: Mov A, #n8
Move dados de 8 bits para o acumulador A.
Ex. MOV A, #2FH
Formato 2: Mov men, #n8
Move dados de 8 bits para o acumulador A ou registrador (B a F).
Ex. MOV B, #03H
Formato 3: Mov A, men
Move o conteúdo de um registrador (B a F) para o acumulador A.
Ex. MOV A,C
Formato 4: Mov men, A
Move o conteúdo do acumulador A para um registrador (B a F).
Ex. MOV F,A
Formato 5: Mov A, @ mem
Move o conteúdo da posição do registrador (B a F) para o
acumulador A. Como os dados são movidos indiretamente, este
formato de instrução é chamado especificamente de modo de
instrução de endereçamento indireto.
Ex. MOV A, @B
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Aritmética
Código: ADD
Descrição: Executa uma adição aritmética entre o acumulador A e um registrador (B
a F) ou entre registrador e um dado de operando.
Formato 1: ADD A, mem
Adiciona o conteúdo de um registrador (B a F) ao acumulador A.
Ex. ADD A,D
Formato 2: ADD A, #n8
Adiciona dados de 8 bits ao acumulador A.
Ex. ADD A, #02H
Código: SUB
Descrição: Executa uma subtração aritmética entre o acumulador A e um registrador
(B a F) ou entre um registrador e um dado de operando.
Formato 1: SUB A, mem
Subtrai o conteúdo de um registrador (B a F) do acumulador A.
Ex. ADD A,D
Formato 2: SUB A, #n8
Subtrai dados de 8 bits do acumulador A.
Ex. ADD A, #02H
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Deslocamento
Código: ROR
Descrição: Desloca o conteúdo do acumulador ou registrador (B a F) um bit para a
direita. O bit deslocado para fora é armazenado no indicador de “vai-um”, que é
determinado pela instrução JNC ou JC.
b7
b0
Indicador de vai 1
Formato 1: ROR A
Desloca o conteúdo do acumulador A um bit para a direita.
Ex. ROR A
Formato 2: ROR mem
Desloca o conteúdo do registrador (B a F) um bit para a direita
Ex. ROR C
Código: ROL
Descrição: Desloca o conteúdo do acumulador ou registrador (B a F) um bit para a
esquerda. O bit deslocado para fora é armazenado no indicador de “vai-um”, que é
determinado pela instrução JNC ou JC.
b7
b0
Indicador de vai 1
Formato 1: ROL A
Desloca o conteúdo do acumulador A um bit para a esquerda.
Ex. ROR A
Formato 2: ROR mem
Desloca o conteúdo do registrador (B a F) um bit para a esquerda.
Ex. ROR C
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Incremento / Decremento
Código: INC
Descrição: Incrementa 1 ao conteúdo do acumulador A ou ao registrador (de B a F).
Formato 1: INC A
Adiciona o dado 1 ao acumulador A.
Ex. INC A
Formato 2: INC mem
Adiciona o dado 1 à memória (B a F)
Ex. INC F
Código: DEC
Descrição: Decrementa 1 ao conteúdo do acumulador A ou ao registrador (de B a F).
Formato 1: DEC A
Subtrai o dado 1 ao acumulador A.
Ex. INC A
Formato 2: DEC mem
Subtrai o dado 1 à memória (B a F)
Ex. DEC F
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Saltar
Código: JMP
Descrição: Move incondicionalmente o fluxo de programa para o endereço do
operando.
Formato : JMP !endereço
Ex. JMP L01H
Código: JZ
Descrição: Move o fluxo de programa para o endereço do operando se o indicador
de zero (Zero-Flag) for 1
7
Formato : JZ !endereço
Ex. JZ L01H
Código: JNZ
Descrição: Move o fluxo de programa para o endereço do operando se o indicador
de zero (Zero-Flag) for 0
Formato : JNZ !endereço
Ex. JNZ L01H
Código: JC
Descrição: Move o fluxo de programa para o endereço do operando se o indicador
de “vai-um” (Carry-Flag) for 1
Formato : JC !endereço
Ex. JC L01H
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Código: JNC
Descrição: Move o fluxo de programa para o endereço do operando se o indicador
de “vai-um” (Carry-Flag) for 0
Formato : JNC !endereço
Ex. JNC L01H
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Comparação
Código: CMP
Descrição: Compara o conteúdo do acumulador A com dados de 8 bits do operando
ou do registrador (B a F), ou o conteúdo de um registrador (B a F) com dados de 8
bits do operando ou do registrador (B a F). O resultado da comparação pode ser
determinado pela verificação dos indicadores de zero (Zero-Flag) ou de “vai-um”
(Carry-Flag). Os conteúdos do acumulador A ou dos registradores não mudam.
Formato 1: CMP A,#8
Compara o conteúdo do acumulador A com dado de operando de 8
bits.
Ex. CMP A,#08H
Formato 2: CMP A,mem
Compara o conteúdo do acumulador A com um registrador (B a F).
Ex. CMP A,C
Formato 3: CMP mem,#8
Compara o conteúdo de um registrador (B a F) com um dado de
operando de 8 bits.
Ex. CMP D,#08H
Formato 4: CMP mem,A
Compara o conteúdo de um registrador (B a F) com acumulador A.
Ex. CMP C,A
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Beep
Código: BON
Descrição: Começa a emitir um beep de uma escala musical especificada pelo valor
do operando como segue:
Valor do
Operando
1
2
3
4
5
6
7
8
9
A
B
C
D
Freqüência
do Som (Hz)
500
530
562
595
630
667
707
750
794
840
890
944
1000
Escala
Musical
dó
dó#
ré
ré#
mi
fá
fá
sol
sol#
lá
lá#
si
dó
Formato : BON #n4
Ex. BOM #1H
Código: BOF
Descrição: Termina a emissão de beep como visto no exemplo acima.
Formato : BOF
Ex. BOF
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Instruções de Controle de Tempo
Código: TM1
Descrição: Aguarda por um período de tempo especificado pelo valor do operando *
10 mili-segundos, antes de executar a instrução.
Formato : TM1 #n8
Ex. TM1 #32H
Código: TM2
Descrição: Aguarda por um período de tempo especificado pelo valor do operando *
1 segundos, antes de executar a instrução.
Formato : TM2 #n8
Ex. TM2 #03H
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Outras Funções
Código: STP
Descrição: Interrompe o fluxo de programa.
Formato : STP
Ex. STP
Código: NOP
Descrição: Não faz nada. Cada instrução gasta em média 2 mili-segundos
Formato : NOP
Ex. NOP
Código: SEC
Descrição: Coloca o indicador de “vai-um” (Carry-Flag) para 1.
Formato : SEC
Ex. SEC
Código: CLC
Descrição: Limpa o indicador de “vai-um” (Carry-Flag), deixando-o com valor 0 (zero)
Formato : CLC
Ex. CLC
Código: HEX
Descrição: Define um dado com tamanho de 8 bits na linha onde ele aparece.
Formato : HEX #n8
Ex. HEX #01H
Prática de Microprocessadores II
Prof. Ricardo de Macedo
Download