Você está na página 1de 21

Conjunto de

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

 Numero de local de memoria requerido: 1


 Ciclos: 2
 Estados: 7
 Exercicio1: Escreva o op code do mnemónico
MOV B, M.
MOV M, R ((H)(L)) ‹—(r)
O conteúdo do registo R é movido para o local de
memoria cujo endereço esta nos registos H (bit
mais significativo) e L(bit menos significativo).

Op code: 01 110 SSS


 Numero de local de memoria requerido: 1
 Ciclos: 2
 Estados: 7
 Exercicio2: Escreva o op code do mnemónico
MOV M, L.
MVI R, Dados (R)‹—(byte 2)
 O conteúdo de byte 2 da instrução é movido para o
registo R.
 Numero de local de memoria requerido: 2
Op code 00 DDD 110
Dados Dados

 Ciclos: 2
 Estados: 7
Ex2: MVI H, 34H
DDD(Reg H) = 100
Op code = 01100110 local de memoria N

Dados = 00110100 local de memoria N+1


MVI M, Dados ((H)(L))‹—(byte 2)
O conteúdo de byte 2 da instrução é movido para
o local de memoria apontado pelo par HL.
 Numero de local de memoria requerido: 2

Op code 00 110 110


Dados Dados

 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

Dado(LSB) = 01110101 local de memoria N+1

Dado(MSB) = 00010101 local de memoria N+2


LDA addr (A) ((byte 3)(byte 2))
O conteúdo do local de memoria, o qual o seu
endereço é especificado no byte 2 e byte 3 da
instrução, é movido para o registro A
(carregamento directo para acumulador).
 Numero de local de memoria requerido: 3
Op code 0111010
Endereço endereço de baixa ordem
endereço de alta ordem

 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

 Ciclos: 4 endereço de alta 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

 Ciclos: 4 endereço de alta 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

Você também pode gostar