Escolar Documentos
Profissional Documentos
Cultura Documentos
Referncias: Structured Computer Organization (captulo 7), A.S. Tanenbaum, (c) 2006 Pearson Education Inc Computer Organization and Architecture, W. Stallings, Prentice Hall
Motivao (i)
Traduo X interpretao; Java usa dois nveis:
O compilador traduz Java para bytecode A mquina virtual interpreta o bytecode
Tradutores:
Compilador: Java, C, Fortran Montador/Assembler representao simblica da linguagem da mquina; inclui instrues e endereos; cada instruo corresponde exatamente a uma instruo do nvel ISA
Motivao (ii)
Programar em Assembler mais difcil e toma mais tempo que usando linguagem de alto-nvel Por qu usar Assembler ?
Desempenho
Expert pode produzir cdigo mais rpido e menor; essencial em aplicaes embutidas, etc, eg Smartcards
Acesso a detalhes
Interrupo, trap handlers, E/S; gerenciamento de memria virtual
Motivao (iii)
Comparao de linguagem de montagem e linguagem de alto nvel, considerando um ajuste fino (tuning)
Motivao (iv)
1. O sucesso do projeto pode depender do desempenho 2. Algumas aplicaes tm limitaes de memria 3. Acesso a detalhes de baixo nvel 4. Projeto de compiladores 5. Estudo de arquitetura de computadores 6. Etc
Campos:
Rtulo / Label: representam posies/endereos na memria Opcode Operandos Comentrios
Pseudo-Instrues (i)
Some of the pseudoinstructions available in the Pentium 4 assembler (MASM).
Pseudo-Instrues (ii)
Pseudo-instrues disponveis no assembler do Pentium 4 (MASM)
* *
Pseudo-Instrues (iii)
BASE EQU 1000; o nome BASE pode ser usado em todo lugar ao invs de 1000 LIMIT EQU 4*BASE + 2000; pode ser definido atravs de expresses DB, DW, DD, DQ alocam memria para variveis
TABLE DB 11, 23, 49 nomeia e inicializa 3 bytes
Montagem Condicional
M1 M2 MACRO IF WORDSIZE GT 16 MACRO
No primeiro passo os smbolos so coletados na Tabela de Smbolos; as macros tambm so expandidas, trs tabelas so usadas:
Tabela de smbolos Tabela de Cdigos de Operao Tabela de Pseudo-instrues
Instruction location counter (ILC): mantm o controle dos endereos onde as instrues sero carregadas na memria. Neste exemplo, os comandos antes de MARIA ocupam 100 bytes.
A classe da instruo define a traduo da instruo, cada classe sendo associada a procedimentos especficos de traduo do montador
Passo I (i)
...
Passo I (ii)
... Pass one of a simple assembler.
...
Passo I (iii)
...
Passo II (i)
...
Passo II (i)
Gerao do programa objeto e da listagem Gerao de informao para o Linker
Usado na composio de programas a partir de mdulos
Identificao de Erros
Passo II (ii)
...
Ligao e Carregamento
A gerao de um programa binrio executvel, a partir de um conjunto de programas traduzidos independentemente, requer o uso de um ligador (loader)
Endereo inicial de montagem = 100 Mdulos objetos aps posicionados na imagem binria Binrio executvel: Mdulos objetos depois da ligao e realocao, considerando a base 100
Mdulo Tamanho Endereo Inicial
A B C
+ 100
Instante de Ligao
Quando o programa escrito Quando o programa traduzido Quando o programa ligado, mas antes de ser carregado Quando o programa carregado Quando um registro de base usado para endereamento carregado Quando a instruo contendo o endereo carregada
Uso de uma DLL por dois processos DLL: Dynamic Link Library
uma coleo de procedimentos que pode ser carregada na memria Servem para definir interfaces de mdulos: jogos, bibliotecas, drives, etc