LABORG Parte 3 Introduo a Programao em Linguagem
LABORG Parte 3 – Introdução a Programação em Linguagem de Montagem do MIPS Fernando Gehm Moraes César Marcon Ney Laert Vilar Calazans 14/setembro/2009
Introdução • MIPS – Um processador RISC de 32 bits • Conjunto de Instruções – Usa-se o Instruction Set Architecture (ISA) do MIPS R 2000, primeira geração do MIPS (década de 80) • Todas as instruções ocupam 32 bits • Dados mais naturalmente tratados são de 32 bits – ISA do MIPS R 2000 “dá suporte direto a”*: * • Números naturais de 32, 16 ou 8 bits • Números inteiros de 32, 16 ou 8 bits • Números racionais de 32 ou 64 bits • Manipulação de caracteres ASCII compactados em palavras de 32 bits ou descompactados • Suporte limitado a dados quaisquer de 64, 32, 16 e 8 bits “Dá suporte direto a” significa “possui instruções específicas para manipular tais tipos de dados” Fernando Moraes / César Marcon / Ney Calazans 2
Objetivos • Esta aula tem como objetivos: – Dar noções de como estruturar programas em linguagem de montagem do MIPS – Dar noções de como criar estruturas de dados simples no MIPS – Treinar conceitos básicos de programação no MIPS com: • Números naturais • Números inteiros • Cadeias de caracteres • Forma de realizar este treino – escrever e testar três programas: – Somar o conteúdo de duas variáveis inteiras positivas de 64 bits e colocar o resultado em uma terceira variável – Soma 64 bits – Multiplicar dois números naturais de 32 bits e imprimir o resultado - Multip – Manipular uma cadeia de caracteres qualquer, trocando todas as vogais maiúsculas em letras minúsculas, mantendo todos os demais caracteres intactos. Imprimir o resultado - Vogaistolower • Notar que números racionais não serão abordados aqui, pois sua representação será estudada apenas em disciplina posterior. Fernando Moraes / César Marcon / Ney Calazans 3
TRABALHO A FAZER • Familiarizar-se com o ambiente de desenvolvimento MARS para o MIPS R 2000 • Compreender o processo de edição, montagem e simulação, incluindo operações de entrada e saída no ambiente MARS • Programar as três aplicações mencionadas aqui e mostrar que os programas funcionam usando o ambiente MARS: – Soma 64 bits. asm – Dicas: o grande problema é como propagar o vai-um dos 32 bits inferiores para os superiores. Use instruções de teste para resolver o problema. – Multip. asm - Dicas: Usem uma das instruções de multiplicação do MIPS, mas o resultado final deve estar em registradores do Banco de registradores, e não nos registradores especiais HI e LO. – Vogaistolower. asm - Dicas: Os caracteres entre A-Z possuem representação ASCII que em hexadecimal (8 bits) vão respectivamente em sequência de 0 x 41 a 0 x 5 A, e os caracteres a-z vão em sequência de 0 x 61 a 0 x 7 A. Controlem as decisões no programa fazendo testes numéricos para verificar se os caracteres são os que se quer alterar. Fernando Moraes / César Marcon / Ney Calazans 4
A ENTREGAR • Um arquivo compactado (. zip, . rar, etc. ) contendo: – Os códigos. asm dos três programas – Relatório incluindo telas do MARS, mostrando a operação correta de cada um dos programas • Data Final de Entrega: 21/09/2009, até o fim do dia, por e-mail Fernando Moraes / César Marcon / Ney Calazans 5
- Slides: 5