50 likes | 118 Views
LABORG. Fernando Gehm Moraes Ney Laert Vilar Calazans. Parte 4 – Programação em Linguagem de Montagem do MIPS. 02/setembro/2013. Introdução. MIPS – Um processador RISC de 32 bits
E N D
LABORG Fernando Gehm MoraesNey Laert Vilar Calazans Parte 4 – Programação em Linguagem de Montagem do MIPS 02/setembro/2013
Introdução • MIPS – Um processador RISC de 32 bits • Conjunto de Instruções – Usa-se o Instruction Set Architecture (ISA) do MIPS R2000, 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 R2000 “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”
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 – Soma64bits • 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 por 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
TRABALHO A FAZER • Familiarizar-se com o ambiente de desenvolvimento MARS para o MIPS R2000 • 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: • Soma64bits.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 (8bits) vão respectivamente em sequência de 0x41 a 0x5A, e os caracteres a-z vão em sequência de 0x61 a 0x7A. Controlem as decisões no programa fazendo testes numéricos para verificar se os caracteres são os que se quer alterar
A ENTREGAR – T4 • Um arquivo compactado (.zip, .rar, etc.) contendo: • Os códigos dos três programas em 3 arquivos distintos (.asm) • Relatório incluindo telas do MARS, mostrando a operação correta de cada um dos programas • Data Final de Entrega:Ver Homepage, até antes 15min antes do horário de início da aula via sala do Moodle ou por e-mail (em caso de inacessibilildade do Moodle)