O Software Básico
Por: Carlos Carvalho • 28/5/2018 • Pesquisas Acadêmicas • 318 Palavras (2 Páginas) • 219 Visualizações
Trabalho Prático I – Montador
Software Básico
Ana Luisa Rodrigues
Carlos Alberto de Carvalho Antônio
Luiz Otávio Teixeira Caldonazo
- Introdução
Um montador é um programa que cria um código objeto traduzindo instruções da linguagem de máquina(assembly) para o código de máquina. O montador substitui instruções, variáveis pelos códigos binários ou hexadecimais e endereços de memória correspondentes. Os montadores mais usados em compiladores de linguagens de alto nível executam a tradução em duas leituras do código fonte. A primeira consiste na definição de uma tabela de endereçamento(tabela de símbolos) para rótulos, e a segunda na tradução efetiva de cada instrução.
O objetivo deste trabalho é desenvolver em linguagem C++ o funcionamento prático de um montador e testar os resultados no CPUSim.
O desenvolvimento da implementação teve como parâmetro as descrições contidas no livro Organização Estruturada de Computadores do Tanenbaun e Austin.
- Implementação
Inicialmente, são definidas as constantes que representam o código das operações juntamente com a definição dos registradores.
São declaradas, também, a tabela de símbolos que tem como finalidade armazenar rótulos e endereços, um vetor auxiliar para manusear a função .data, um vetor que possuirá todas as instruções hexadecimais e outro vetor para manipulação de instruções.
Além disso, outra variáveis como contador do programa, quantidade de elementos, endereço, e tamanho de memória são declaradas.
- Funções Auxiliares
Como complemento para as duas passadas, são necessárias algumas funções facilitadoras, são elas:
- hexToDecimal
Recebe uma string em hexadecimal e converte para inteiro decimal.
- decimalToHex
Recebe um inteiro em decimal e converte para string hexadecimal.
- checkSum
Gera byte de validação para código hexadecimal.
- GetHexFromBin
Recebe uma string binária e converte para string hexadecimal.
- DecToBin
Recebe um inteiro decimal e converte para string binário.
- criaHex
Gera código em hexadecimal usando como parâmetros o endereço de instrução em hexadecimal e dado binário.
- formataAddress
- Primeira passada
Conforme mencionado na introdução, a primeira passada consiste
- Segunda passada
- Testes
- Conclusão
Referências Bibliográficas
Tanenbaun, Austin, Organização estrutura de computadores, 6ª edição, Pearson, 2013.
...