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 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”
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 – 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 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 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.
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
Download

laborg_parte3