Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1o Trimestre / 2009
Resumo
- Vimos nas ltimas aulas - Projeto da Arquitetura do Conjunto de Instrues (ISA) - Veremos hoje - Como programar utilizando uma linguagem de montagem - as88, um simulador do processador 8088 - Arquitetura ISA do processador 8088
Linguagem de Montagem
ISA (Instruction Set Architeture) Linguagens de Montagem
Instrues, registradores e outras caractersticas Representao simblica da ISA Utilizam smbolos como ADD, SUB, MOV no lugar de binrios Permitem o uso de rtulos para endereos de memria e nomes simblicos para constantes Converte um programa escrito em linguagem de montagem em um programa binrio, executvel pela mquina
Assembler
Interpretador / Rastreador
Escrever um programa em Assembly difcil
Procedimento escrever o programa, compil-lo e rod-lo Mas normalmente o programa pra sem nenhuma pista do erro Programa que simula um processador Executa uma instruo por vez, mostrando detalhes da execuo, como registradores e pilha Vantagens? Desvantagens?
Interpretador / Simulador
Exemplo de Rastreador
O simulador as88
http://www.prenhall.com/tanenbaum_br
Usando o as88
Existem instrues para instalao em Linux e Windows
Siga as instrues em instrucoes/<SO>.htm Em Linux, pode ser executado a partir de um pen-drive
Dentro do diretrio 'examples' esto diversos exemplos que podem ser executados
So descritos com mais detalhe no apndice C do livro
Execute os exemplos e veja as alteraes nos valores de registradores, pilhas de execuo, etc.
Mas arquitetura permite utilizar 1MB de memria! Quebrando a memria em mltiplos segmentos
Cada segmento tamanho 64kB e so apontados por registradores especficos CS: Segmento de cdigo DS: Segmento de dados SS: Segmento de pilha (stack) ES: Segmento extra
Registradores do 8088
Endereamento de Segmentos
Memria do 8088 dividida em segmentos
CS: Segmento de cdigo DS: Segmento de dados SS: Segmento de pilha (stack) ES: Segmento extra Valores contidos nos registradores de segmento so deslocados em 4 bits
Todo acesso memria feito somando o endereo de incio de um segmento com o valor em um registrador
Segmento de Pilha
Mantm informaes de contexto durante uma execuo
Normalmente dividida em quadros de pilha Um quadro alocado para cada procedimento Ponteiro SP aponta para o topo e BP para a base do quadro Tambm podem conter dados temporrios de operaes Instrues PUSH e POP permitem modificar o topo da pilha PUSH decrementa o SP em 2 / POP incrementa SP em 2 Assim ponteiros podem ser usados para referenciar a memria em qualquer dos segmentos
Endereamento no 8088
O 8088 suporta diversos modos de endereamento
Em instrues de 2 operandos, o 1 destino e o 2 fonte
Existem instrues em que o operando implcito, como MUL
Endereamento no 8088
Instrues do 8088
Instrues do 8088
Instrues do 8088
Desvios Condicionais
Chamadas de Sistema