O Simulador Hamses
Por: Kleber.Oliveira • 13/3/2018 • 1.559 Palavras (7 Páginas) • 323 Visualizações
...
3.0 Justificativa de escolha da linguagem de programação
Decidiu-se por programar em linguagem C, devido a mesma ser compilada estaticamente e seus códigos fontes são transformados diretamente em linguagem de máquina. Assim, houve uma relação direta com a lógica do código e os binários correspondentes das instruções e das relações de transferencias necessárias para realizar cada instrução.
4.0 Arquitetura escolhida
Utilizou-se a arquitetura do computador hipotético Ramses tal qual as relações código-instruções e o fluxograma de execução se encontram abaixo. Esta organização foi escolhida, por possuir apenas uma unidade aritmética, facilitando assim a lógica desenvolvida para a operação do simulador.
[pic 6]
[pic 7]
4.0 O simulador
Requisitos para execução do simulador: estar preferencialmente em ambiente windows.
4.1 Tutorial de execução
Segue as instruções para execução do simulador de Unidade de Controle do Computador Ramses.
Antes de tudo descompacte a pasta que contém o simulador.
Etapa de mapeamento da área de dados da memória
1) Abra o arquivo 'memoria_dados.txt'
2) Escreva os valores desejados nas posições de memória que desejar, as posições em branco são consideradas como 0 “zero”, escreva conforme o exmplo abaixo:
Exemplo:
mem[128]=0132
mem[129]=
mem[130]=0151
mem[131]=
Etapa de Escrita do código a ser analisado:
3) Crie um arquivo no bloco de notas e salve na pasta Simulador
4) Escreva o programa em assembly que deseja analisar, considere os seguintes casos:
4.1) Modo de endereçamento direto:
Escreva o endereço seguido da letra “D”, conforme exemplo a seguir:
Exemplo: LDR A 128D
4.2) Modo de endereçamento indireto:
Escreva o endereço seguido da letra “I”, conforme exemplo a seguir:
Exemplo: LDR A 128I
4.3) Modo de endereçamento imediato:
Escreva depois do endereço a letra “#”, conforme exemplo a seguir:
Exemplo: LDR A 128#
4.4) Modo de endereçamento indexado:
Escreva o endereço segido da letra “X”, conforme exemplo a seguir:]
Exemplo: LDR A 128X
4.5) Considere apenas as instruções do computador hipotético Ramses para a escrita do programa conforme abaixo:
onde r é o registrador utilizado, que pode ser A, B ou X e end é o endereço de dados da memória que foi mapeado anteriormente e se deseja utilizar.[pic 8]
5) Salve o programa com um nome que lembrará depois.
Etapa de execução do Simulador
6) Abra com duplo clique o arquivo “Ramses_UC.cpp”
7) Na aba principal do programa clique em “Executar” depois “Compilar & Executar”.
8) A partir daí aparecerá a tela de execução do programa, que já contém intruções de prosseguimento do programa e os resultados requeridos conforme objetivos propostos. Nesta etapa deve se digitar o nome do arquivo em que foi salvo o programa em assembly a ser analisado.
Considere os Registradores da seguinte maneira: A = Registador 0; B = Registrador 1; e X = Registrador 2.
A seguir demonstra-se exemplos de execução do programa.
4.2 Demosntração de execução
4.2.1 Primeira demonstração
Utilizou-se os seguintes arquivos de entrada:
Para o mapeamento da área de dados da memória, o conteúdo do arquivo “memoria_dados.txt”, será:
mem[128]=0132
mem[129]=
mem[130]=0151
mem[131]=
mem[132]=1000
mem[133]=
mem[134]=
mem[135]=0004
mem[136]=0001
Utilizou-se o seguinte código assembly escrito conforme tutorial, salvo no arquivo “assembly.txt”:
LDR A 128I
STR A 129D
LDR B 128D
JMP 1
Assim, inciou-se a execução do programa, segue as telas de execução com suas devidas explicações:
1) Tela de apresentação
2) Mapeamento de dados da área da memória[pic 9]
3) Tela de entrada de arquivo com o código assembly[pic 10]
[pic 11]
4) Analise das linhas do código Assembly
[pic 12][pic 13]
[pic 14]
[pic 15]
5) Sequências de microinstruções por instante de tempo de cada linha do código:
LDR A 128I[pic 16]
STR
...