Carregar apresentação
A apresentação está carregando. Por favor, espere
1
EEL7030 - Microprocessadores
Prof. Raimes Moraes GpqCom – EEL UFSC
2
8086 Primeiro (1980) da família do Pentium (80x86). Componente com arquitetura similar (8088) utilizado no primeiro IBM PC. Cada descendente executa código dos antepassados e possui: Mesmo conjunto básico de registradores (Mais bits, contudo) Mesmo conjunto básico de instruções (Mais muitas outras, contudo) Mesmo mecanismo de interrupções
3
8086 Processador de 16-bits: Registradores de 16 bits
Possui 20 pinos de endereçamento (16 destes são multiplexados com os dados) Endereça até 220 posições de memória (00000H a FFFFFH): Possui 216 endereços para dispositivos de I/O: (0000H a FFFFH) Pode-se ler byte ou palavra de 16 bits da memória
4
8088 Processador de 16-bits (Mesmo cj. de instruções do 8086):
Registradores de 16 bits Possui 20 pinos de endereçamento (8 destes são multiplexados com o barramento de dados. Palavra de 16 bits é lida da memória byte a byte) Endereça até 220 posições de memória (00000H a FFFFFH): Possui 216 endereços para dispositivos de I/O: (0000H a FFFFH) Pode-se ler byte ou palavra de 16 bits da memória
5
Distribuição de dados na memória: LSB, MSB
00000H 12H Conteúdo lido da memória em 00000H: 3412H 00001H 34H Conteúdo lido em 00001H: 56 34H 00002H 56H Conteúdo lido da memória em 00002H: 78 56H 00003H 78H Conteúdo lido em 00003H: 91 78H 00004H 91H Conteúdo do byte 4H 00005H 23H Conteúdo do byte 5H . FFFFEH ABH Conteúdo lido da memória em FFFFEH: CD ABH FFFFFH CDH
6
8088
7
Registradores do 8088
8
Registradores de Dados Registradores do Pentium
9
Papel especial de registradores em instruções específicas
BX: Usado em endereçamento CX: Usado como contador default DX é usado para: - Endereçamento de Portas de I/O de 16-bits (IN AL, DX) - Registrador mais significativo do resultado de produto de operandos de 16 bits - Registrador mais significativo de dividendo de 32 bits. Acumulador : 8-bit AL, 16-bit AX, 32-bit DX AX
10
Flags Aritméticos FLAG SETADO SE OPERAÇÃO TEM RESULTADO :
OF (OVERFLOW) OPERAÇÃO EXCEDE TAMANHO DO REG. SF (SINAL) NEGATIVO Z F(ZERO) ZERO AF (CARRY AUXILIAR) VAI ou VEM 1 do BIT3 para o BIT4 do Acc PF (PARIDADE) PARIDADE PAR (NRO DE ‘1’s no Acc é PAR) CF (CARRY) VAI ou VEM 1 (Operações aritméticas)
11
Flags de Controle DF Direcão (forward/backward)
Usado em Instruções de manipulação de strings IF Habilita/Desabilita Interrupções TF Habilita/Desabilita execução de instrução passo a passo
12
Registradores Utilizados na Manipulação de Dados
Registradores de 16-bits: AX, BX, CX, DX, SI, DI, BP, SP Registradores de dados (8-bits): AH, AL, BH, BL, CH, CL, DH, DL
13
Registradores de Endereçamento
Registradores de Segmento (16-bits): CS Code Segment DS Data Segment SS Stack Segment ES Extra Segment Registradores de Offset (16-bits): IP Instruction Pointer SP Stack Pointer BP Base Pointer SI Source Index DI Destination Index
14
Barramento do 8088 : A19 a A16 S4 S3 Segmento Dados Extra 1 Pilha
ADDRESS/STATUS: Durante ciclo de clock T1, disponibilizam os 4 MS bits do endereço ou “0” em operações de I/O. Durante demais ciclos, informação de status. S6 é sempre baixo. S5 indica nível do bit IF. S4 e S3 indicam qual registrador de segmento está sendo usado. S4 S3 Segmento Dados Extra 1 Pilha Código Dados
15
Endereçamento Como endereçar 1 Mbytes a partir de registradores de 16 bits? 8088: Reg. de Segmento x 16 + Reg. Offset
16
Composição de endereços com registradores de segmentos e offset
CÓDIGO CS:IP PILHA SS:SP SS:BP (certas instruções) DADOS DS:BX DS:SI DS:DI (manipulação de strings) ES:DI
17
Endereçamento CS = 1000H; IP = A000H 10000 CS*16 A000 + IP 1A000H
Como endereçar 1 Mbytes a partir de registradores de 16 bits? 8088: Reg. de Segmento x 16 + Reg. Offset Exemplo: Endereçamento do Código CS = 1000H; IP = A000H CS*16 A IP 1A000H
18
Endereçamento CS = 0F00H; IP = B000H 0F000 CS*16 B000 + IP 1A000H
Exemplo: Existem diversas possibilidade de endereçar a mesma posição de memória CS = 0F00H; IP = B000H 0F000 CS*16 B IP 1A000H
19
Endereçamento Conhecendo o valor dos registradores abaixo, calcule os endereços físicos (20 bits) em hexadecimal: CS = 1660H; DS = 1700H; SS = 1760H; ES = 1650H IP = 00A0H; SP = 0400H; SI = H; DI = A000H a) do código b) da pilha
20
Organização da memória
21
Organização da memória
22
MODOS DE ENDEREÇAMENTO
1) IMEDIATO Antes Depois Ex. 1: MOV DX, 1234H DX ABCDH 1234H Ex. 2: MOV CH, 23H CH CDH 23H Dado segue o opcode
23
2) Via Registrador Antes Depois Ex.1: MOV CX, SI CX 1234H 5678H SI
Ex.2: MOV DL, AH DL 89H BCH AH
24
3) Direto OU ABSOLUTO Antes Depois Ex.1: MOV BX, [5634H] BX ABCDH
LSB DS=1000H 1000:5635H 86H MSB Antes Depois Ex.2: MOV CL, [5634H] CL F2H 30H 3000:5634H DS=3000H 3000:5635H 66H
25
3) Direto Com OveRide Antes Depois Ex.1: MOV BX, ES:[5634H] BX ABCDH
LSB ES=2000H 2000:5635H 86H MSB
26
Antes Depois Ex. 3: MOV BH, [VALOR] BH C5H 78H Programa .DATA VALOR DB 78H
27
4) inDireto (BX,BP,DI,SI) Antes Depois Ex.1: MOV CL, [SI] CL 20H 78H
DS=1000H 1000:3456H Antes Depois Ex.2: MOV DX, [BP] DX F232H 3567H BP A2B2H DS=1000H 4020:A2B2H 67H LSB SS=4020H 4020:A2B3H 35H MSB
28
5) inDexado (offset+(BX,BP,DI,SI))
Antes Depois Ex.1: MOV DH, [2345H+BX] DH 45H 67H 2345H é o offset BX 4000H 4000H+2345H = 6345H DS=3500H 3500:6345H Antes Depois Ex.2: MOV AX, [45H+BP] AX 1000H CDABH 45H é o offset BP 3000H 3000H + 45H = 3045H 4600:3045H ABH LSB BP SS (SS=4600H) 4600:3046H CDH MSB
29
6) baseado ((BX,BP,DI,SI) + offset))
Antes Depois Ex1:MOV CL,[BX+05H] CL 40H 67H 0300H+05H=0305H BX 0300H DS=3500H 3500:305H
30
7) Baseado indexado ((BX ou BP) + (DI ou SI) + offset))
Antes Depois Ex1:MOV CL,[BX+SI] CL 40H 67H SI 2000H 0300H+2000H=2300H BX 0300H DS=1000H 1000:2300H Antes Depois Ex2:MOV CX,[BP+DI+4H] CX 6000H 6385H BP 0020H DI 3004H 20H+3004H=3024H 4600:3024H 85H LSB BP SS (SS=4600H) 4600:3025H 63H MSB
31
7) Baseado indexado ((BX ou BP) + (DI ou SI) + offset))
Antes Depois Ex3: MOV DL, [BX+DI+37H] DL 40H 12H 37H é o offset BX 2000H 2000H+0050H+37H=2087H DI 0050H DS=1000H 1000:2087H Antes Depois Ex4: MOV BX, [BP+SI+1234H] 3000H 3665H 1234 é o offset SI 4000H BP 0020H =5254H 1000:5254H 65H LSB BP SS (SS=1000H) 1000:5255H 36H MSB
32
8) Relativo (Call, JMP e Desvios Condicionais): -128 a +127
Endereço Opcodes Instrução 1CD7:100 29 D0 SUB AX,DX 1CD7:102 73 03 JNC 0107 1CD7:104 B8 00 MOV AX,00 1CD7:107
33
Assembly do 8088 Instrução Comentários MOV AX,[BX]
; Palavra apontada por DS:[BX] vai para AX MOV BL,[BX] ; Byte apontado por DS:[BX] vai para AL INC [BX] ; ? Incrementar Byte ou Palavra
34
Assembly do 8086 Instrução Comentários INC BYTE PTR [BX]
; Incrementa byte apontado por DS:[BX] vai para AX INC WORD PTR [BX] ; Incrementa palavra apontada por DS:[BX]
35
Código de Máquina Seja a instrução MOV DX, 316BH; BA 6b 31
o código de máquina do 8088 para a instrução de transferência de dado imediato para um registrador é dada por: 1011 W RRR - Dado (8 bits) - Dado (8 bits) onde: W = 0 se instrução opera em 1 byte de dados e W = 1 se instrução opera em 1 palavra de dados RRR = 000, 001, 010, 011, 100, 101, 110, 111 estabelece o registrador que recebe o dado: AX, CX, DX, BX, SP, BP, SI, DI se W = 1 ou AL, CL, DL, BL, AH, CH, DH, BH se W = 0
36
Classifique as instruções abaixo em relação ao modo de endereçamento.
Instrução Base Reg. Index Reg. Offset MOV BX, DS:[5634H] N S MOV CL,[SI] MOV DX,[BX] MOV DH, [BX+2345H] MOV DX, [35H+DI] MOV CL, [BX+SI+37H] MOV DL, [BP+DI+40H]
37
Classifiçação das instruções em relação ao modo de endereçamento.
Instrução Base Reg. Index Reg. Offset Modo de Endereçamento MOV BX, DS:[5634H] N S Direto MOV CL,[SI] Indireto MOV DX,[BX] MOV DH, [BX+2345H] Baseado MOV DX, [35H+DI] Indexado MOV CL, [BX+SI+37H] Baseado Indexado MOV DL, [BP+DI+40H]
38
Endereçamento de IO Antes Depois Ex.1: IN AL,83H AL 34H 78H Antes
Porta de IO 83H Antes Depois Ex.2: IN AX,83H AX 5634H F278H Porta de IO 83H 78H Porta de IO 84H F2H
39
Antes Depois Ex. 3: IN AL, DX AL 30H 60H DX 1234H Porta de IO 1234H Antes Depois Ex. 4: IN AX,DX AX 3040H 7060H DX 4000H Porta de IO 4000H 60H Porta de IO 4001H 70H
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.