140 likes | 214 Views
Ambiente Mars. Prof. André Luis Meneses Silva. Introdução. O simulador MIPS Mars foi desenvolvido pela universidade de Missouri. Mars foi projetado para ser um simulador de fácil utilização, para alunos de graduação.
E N D
Ambiente Mars Prof. André Luis Meneses Silva
Introdução • O simulador MIPS Mars foi desenvolvido pela universidade de Missouri. • Mars foi projetado para ser um simulador de fácil utilização, para alunos de graduação. • Não apresenta recursos de simuladores mais avançados (tal como PCSpim), porém sua interface é bem mais amigável. • Desenvolvido em Java.
Aba Edit Menu de edição
Programa em execução Aba Execute Registradores Memória de Dados Saída/Entrada de dados
Primeiro programa • .data • hello_str: .asciiz "Hello world!" • .globl main • .text • main: • la $a0,hello_str #carrega end. do string no reg. $a0. • li $v0,4 #carrega o códigodasyscall no reg. $v0 • syscall • li $v0,10 #carrega o códigodasyscall no reg. $v0 • syscall
Sintaxe do Assembler • Sintaxe do assembler: • Comentários de linhainiciam-se com #. • Identificadoressãoseqüências de caracteresalfanuméricos, _ e ., e não se iniciam com números. • Rótulossãocolocados no começo de umalinha e seguidos de :. • Númerosestãona base decimal porpadrão; se precedidospor0xsãointerpretadoscomohexadecimais. • Strings sãoenvolvidos com “”,
Diretivas • Utilizadaspeloprogramadorparainstruir o assembler comotraduzir um programa. • Nãoproduzinstruções de máquina. • Principaisdiretivas: • .asciizarmazenacaracteres de um stringnamemória e finaliza-o com o caracternull; • .asciiarmazenacaracteres de um stringnamemória, masnãofinaliza-o com null; • .data<end.>armazenaositensnaseqüência no segmento de dados. Se <end.> for fornecido, os dados sãoarmazenados a partir do endereçofornecido; • .globlrótulodeclararótulocomo global, podendo ser acessado de outrosarquivos; • .textarmazenaositensnaseqüência no segmento de textos do usuário. Itensdevem ser instruções
Syscall • O Mars provê alguns serviços do sistema operacional através da instrução syscall. • Para utilizar um serviço: • Carregar o código do serviço no registrador $v0; • Carregar os argumentos do serviço nos registradores $a0-$a3; • Chama a instrução syscall.
Simulando um programa • Para simular um programa em Assembly: • Utilize a aba edit para escrever um programa ou • Carregar o arquivo (menu File/Open ou ícone Open), que deve ter extensão .s ou .asm. • Ir até a opção Run >> Assemble • Run >> Go ou ir até o ícone • Dá suporte a execução passo a passo através do botão • Entrada e saída do programa são fornecidas através da janela Run/IO.
Simulando um programa • O Mars permite a introdução de breakpoints. • Também da suporte a retornar a execução em uma instrução (no caso de execução passo a passo).
Mars • Além disso, o MARS possui muitos outros recursos... • Visualizador de estado da memória • Simulador de Cache • Floating pointing representation • Serão explorados no decorrer do curso
Exercícios • Codificar todo os exemplos de aula no MARS.
Referências • Mars Home Page • http://courses.missouristate.edu/KenVollmar/MARS/features.htm • Spim Home Page • http://pages.cs.wisc.edu/~larus/spim.html • Notas de aula da professora Kalina Rabbani • Em breve, disponível no site da disciplina.