Você está na página 1de 3

Formatos de instru instrues

Formato de instrues

Organizao e Arquitetura de computadores


Conjunto de instrues: formatos de instrues e modos de endereamento

Prof. Dr. Luciano Jos Senger

O formato de instrues de uma arquitetura permite especificar, dentre os bits disponveis para representar uma instruo, a quantidade de bits que ser utilizada para o opcode e para os endereos de operandos ou imediatos Em arquiteturas estruturadas, o tamanho de instrues fixo e existem poucos formatos (p.e. MIPS tem 3 formatos bsicos); arquiteturas no bem estruturadas podem ter vrios modos de endereamento e vrios formatos de instrues, inclusive com a utilizao de cdigos de expanso

Formatos de instru instrues


Expanso de cdigo de operao:
Pode-se empregar os campos de operandos para expandir o nmero de instrues de mquina Ex: instrues de 16 bits, endereos de 4 bits, 16 registradores 15 instrues de 3 endereos; 14 instrues de 2 endereos; 31 instrues de 1 endereo; 16 instrues sem endereo

Modos de endere endereamento


Modos de endereamento
Permitem especificar como os operando esto disponveis na memria ou no banco de registradores Diferentes arquiteturas tm nmeros de modos de endereamento diferentes

Modos de endere endereamento


Modos de endereamento
como especificar onde esto os operandos? Ex: Arquitetura hipottica instruo LD carrega o operando para o registrador acumulador (AC) - instrues atravs da linguagem RTL; XR - registrador especial para endereamento
Assembly Modo Ao

Direto

LD ADR AC <- M[ADR]

Indireto Relativo Imediato Indexado

LD @ADR LD $ADR LD #NBR LD ADR(X)

AC <- M[M[ADR]] AC <- M[PC + ADR] AC <- NBR AC <- M[ADR + XR]

Tipos comuns
Imediato Direto Indireto via Registrador Indireto via Registrador Indexado Pilha

LD R1 Registrador AC <- R1

Registrador indireto Auto incremento

LD (R1) LD (R1)+

AC <- M[R1] AC <- M[R1]; R1 <- R1+ 1

Modos de endere endereamento


Endereo de memria 200 201 202 399 400 500 600 702 800 Contedo Load to AC Mode Modo Direto Endereo efetivo 500 Conted o do AC 800

Modos de endere endereamento: 8086


Imediato Operando uma constante constante est codificada na instruo Operando um registrador um dentre: ax,bx,cx,dx,si,di,sp,bp Endereo do operando codificado na instruo Operando est na memria Endereo do operando o contedo de registrador (Apenas um dentre bx, bp, si, di, atuam como apontadores para o operando na memria) Endereo do operando a soma dos contedos de dois registradores (combinaes possveis: [bx+di], [bx+si], [bp+di], [bp+si] ) Endereo do operando a soma dos contedos de dois registradores mais uma constante combinaes possveis: acrescente uma constante s combinaes acima mov ax,1000h ax <= 1000h

Endereo = 500 prxima instruo 450 700 800 900 325 300

Registrador Direto

mov ax, bx mov ax, [1000h]

ax <= (bx) ax <= contedo da memria endereada por 1000h e 1001h ax <= contedo da memria cujo endereo est em bx

Imediato Indireto Relativo Indexado Registrador

201 800 702 600 ---400 400

500 300 325 900 400 700 700


Duplamente indexado com deslocamento Duplamente indexado Indexado ou indireto via registrador mov ax, [bx]

mov ax, [bx + di]

Como os modos de de endereamento funcionam: um exemplo: PC = 200 R1 = 400 XR = 100 AC

ax <= contedo da memria cujo endereo dado por (bx)+(di) ax <= contedo da memria cujo endereo dado por (bx)+(di)+ 1000h

Registrador indireto Auto incremento

mov ax, [bx+di+1000h]

Modos de endere endereamento: PDPPDP-11

Modos de endere endereamento: Pentium II


Endereo virtual (ou efetivo) um deslocamento dentro do segmento
endereo linear (LA) = endereo incio do segmento + endereo efetivo (deslocamento) se paginao est habilitada, este endereo linear traduzido via tabela de pginas para um endereo fsico

Alguns Recursos usados:


6 reg. de segmento (SR): determinam o incio do segmento
escolha depende do contexto da execuo e da instruo

registradores descritores: associados a cada SR (no so visveis)


mantm direitos de acesso, endereos limites

registrador base (B) e registrador ndice (I)


usados para a construo dos endereos

Modos de endere endereamento: Pentium II


Esto disponveis 12 modos de endereamento
imediato
Operando = end. que est no campo da instruo [A]

Modos de endere endereamento: Pentium II

operando registrador
LA = R

por deslocamento
LA = (SR) + A

base
LA = (SR) + (B)

base com deslocamento


LA = (SR) + (B) + A

ndice com fator de escala e deslocamento


LA = (SR) + (I) x (S) + A

base mais ndice e deslocamento


LA = (SR) + (B) +(I) + A

base mais ndice com fator de escala e deslocamento


LA = (SR) + (I) x S + (B) + A

relativo
LA = (PC) + A

Formato de instru instrues: Pentium II

Considera Consideraes finais


Modos de endereamento
Cada forma de endereamento serve para um propsito especfico:
Auto-indexao: empilhamento e desempilhamento de parmetros de procedimentos Direto: acesso a variveis globais Imediato: transferncia de constantes Indexado: acesso a variveis locais Registrador: armazenamento de variveis locais Registrador indireto: armazenamento de apontadores de estruturas

Leituras Recomendadas
Stallings, captulo 10 Tanembaum, captulo 5 (182 a 225)

Você também pode gostar