Escolar Documentos
Profissional Documentos
Cultura Documentos
Instruções
Formato de Instruções
O conjunto de instruções de 8085 consiste em instrução
de 1, 2 ou 3 bytes de comprimento.
O formato da instrução na memoria de programa
depende da operação que será executada.
Toda instrução de máquina deve ter pelo menos o código
da operação (ou Opcode) e os endereços para os
parâmetros necessários, que podem ser registos,
posições de memória ou endereços de dispositivos de
I/O.
Para instruções “multbyte” os dois ou três byte
que formam a instrução completa são armazenados
em posições sucessivas da memoria.
Bit Padrão
A instrução que opera no registo de 8-bit usa 3-bit
padrão embutido na instrução para especificar a
fonte (SSS) e/ou destino(DDD) do registo a ser
usado.
A instrução que opera no registo de 16-bit usa 2-
bit padrão embutido (RP) na instrução para
especificar o registo par a ser usado.
Bit Padrão dos registos e registos pares
de 8085
Registro Código [SSS ou DDD] Registo Par Código [RP]
A 111 BC 00
B 000
DE 01
C 001
D 010 HL 10
E 011
SP 11
H 100
L 101
Conjunto de Instruções de 8085
O conjunto de instruções de 8085 pode ser
separado em cinco principais grupos:
1. Grupo de Transferência de Dados
2. Grupo Aritmético
3. Grupo Logico
4. Grupo Condicional (Salto)
5. Pilha, I/O, e Controle de Maquina
1. Grupo de Transferência de Dados
Estas instruções transferem dados de registos para
registos, memoria para registos, ou registos para
memoria.
Os bits do registo de condição (flags) não são
afectados por nenhuma instrução desse grupo.
Nota: todas as instruções de transferência MOVE
(mover) tem 01 como bit mais significativo do op-
code.
MOV R1, R2 (r1)‹—(r2)
Move o conteúdo de R2 para R1.
Numero de local de memoria requerido: 1
Op code: 01 DDD SSS
Ciclos: 1
Estados: 4
Ex1: MOV A, C //(C com o conteúdo 44H)
DDD(Reg A) = 111 SSS(Reg C) = 001
Op code = 01111001 local de memoria N
Qual o conteúdo de A e C depois da execução da
instrução?
MOV R, M (r)‹—((H)(L))
O conteúdo de local de memoria cujo endereço é
dado pelos registo H (bit mais significativo) e
L(bit menos significativo) é movido para o registo
R.
Op code: 01 DDD 110
Ciclos: 2
Estados: 7
Ex2: MVI H, 34H
DDD(Reg H) = 100
Op code = 01100110 local de memoria N
Ciclos: 3
Estados: 10
Exercicio3:
Escreva o op code do mnemónico
MVI A, DEH.
LXI RP, Dados (rh)‹—(byte 3)
(rl)‹—(byte 2)
O byte 3 da instrução é movido para o registo de ordem alta do
registo par rp. O byte 2 da instrução é movido para o registo de
ordem baixa do registo par rp.
Numero de local de memoria requerido: 3
Op code 00 RP 0001
Dados byte menos significante
byte menos significante
Ciclos: 3
Estados: 10
Ex3: LXI D, 1475H // RP(Reg DE) = 01
Op code = 00010001 local de memoria N
Ciclos: 4
Estados: 13
Exercicio4: Escreva o op code do mnemónico LDA
C003H.
STA addr ((byte 3)(byte 2))(A)
O conteudo do acumulador é movido para o local de
memoria na qual é especificado pelo byte2 e byte3
da instrução. Armarmazenamento directo do
acumulador
Numero de local de memoria requerido: 3
Op code 00110010
Endereço endereço de baixa ordem
Estados: 13
LHLD addr (L)((byte 3)(byte 2))
(H)((byte 3)(byte 2) +1)
O conteudo do local de memoria especificado pelo
byte 2 e byte 3 na instrução, é movido para o registro
L. O conteudo do local de memoria do endereço
seguinte é movido para o registro H.
Numero de local de memoria requerido: 3
Op code 00101010
Ciclos: 5
Endereço endereço de baixa ordem
endereço de alta ordem
Estados: 16
SHLD addr ((byte 3)(byte 2))(L)
((byte 3)(byte 2) +1)(H)
O conteúdo do registro L é movido para o local de
memoria especificada pelo byte 2 e byte 3. O
conteúdo do registro H é movido para o endereço de
memoria seguinte.
Numero de local de memoria requerido: 3
Op code 00100010
Endereço endereço de baixa ordem
Estados: 13
LDAX rp (A) ((rp))
Move o conteúdo de local de memoria M, cujo
endereço esta contido no registo par rp para o
acumulador.
Nota: só os registos BC ou DE podem ser
especificados para rp.
Numero de local de memoria requerido: 1
Op code 00 RP 1010
Ciclos: 2
Estados: 7
Ex4:LDAX B // rp (BC)=00
Op code = 00001010 local de memoria N
STAX rp ((rp)) (A)
Move o conteúdo do acumulador para o local de
memoria M, cujo endereço esta contido no registo
par rp.
Nota: só os registos BC ou DE podem ser
especificados para rp.
Numero de local de memoria requerido: 1
Op code 00 RP 0010
Ciclos: 2
Estados: 7
XCHG (H) (D)
(L) (E)
O conteúdo do registo H é trocado com o conteúdo
do registo D e também o conteúdo do registo L é
trocado com o conteúdo do registo E.
Numero de local de memoria requerido: 1
Op code 11101011
Ciclos: 1
Estados: 4
EX5: XCHG
(H =23H; L=67H; D=9AH; E=F4H)
Op code = 11101011 local de memoria N
Qual o valor de H, L, D, E depois da execução da instrução
Exemplo