No Title

Descrição do MIPS R2000

 

O processador MIPS é constituído por:

CPU -
unidade principal;
coprocessadores -
unidades auxiliares;
0.
gestão de excepções, memória virtual;
1.
unidade de cálculo em vírgula flutuante.

  
Figure: MIPS R2000 CPU e FPU

Registos do CPU

A tabela gif apresenta a convenção para o uso dos registos que garante a compatibilidade entre módulos desenvolvidos por diferentes programadores.

  
Table: Convenções para uso dos registos do MIPS

CoProcessador 0

O SPIM simula os registos do coprocessador necessários para a gestão de excepções.

Ordem dos Octetos

O SPIM numera os octetos de uma palavra obedecendo a uma sequência que depende da convenção usada pelo processador que corre a simulação.

Utilização da Memória

A organização da memória no MIPS é a seguinte:

  
Figure: Organização da Memória

MIPS

Complexidade

Ao nível da Máquina Virtual

A complexidade é ocultada através da definição de uma máquina virtual e respectivo assembler

SPIM

O SPIM S20 é um simulador dos processadores RISC- MIPS R2000.

Possibilidades

Razões de Utilização

Equipamento

Ambiente de Desenvolvimento

Interface

O simulador tem um interface simples spim e um mais sofisticado xspim.

spim(1)                                                   spim(1)

NAME
       xspim - A MIPS R2000/R3000 Simulator

SYNTAX
       xspim     [-asm/-bare     -trap/-notrap    -quiet/-noquiet
       -mapped_io/-nomapped_io -file file -execute file
       -stext size -sdata size  -sstack size -sktext size -skdata
       size -ldata size -lstack size -lkdata size
       -hexgpr/-nohexgpr -hexfpr/-nohexfpr]

DESCRIPTION
       SPIM  S20  is  a simulator that runs programs for the MIPS
       R2000/R3000 RISC computers. (For a description of the real
       machines,  see  Gerry  Kane  and  Joe  Heinrich, MIPS RISC
       Architecture, Prentice Hall,  1992.)  SPIM  can  read  and
       immediately  execute files containing assembly language or
       MIPS executable files.  SPIM is  a  self-contained  system
       for  running  these  programs  and contains a debugger and
       interface to a few operating system services.

Interface XSPIM

Na versão X do spim os painéis estão continuamente a ser actualizados, excepto durante a execução dos programas.

  
Figure: Interface XSPIM.

Botões

quit - Abandonar o simulador.

load- Lêr um ficheiro assembly ou executável para a memória.

run - Iniciar a execução do programa.

step - Executar passo-a-passo.

clear - Reiniciar os valores dos registos ou da memória.

set value - Atribuir valores aos registos ou à memória.

print - Mostrar o valor dum registo ou duma posição de memória.

breakpoint - Definir, apagar ou mostrar pontos de paragem.

help - Mostrar a mensagem de ajuda.

terminal - Mostrar ou esconder a consola do programa.

mode - Estabelece os modos de operação do simulador.

SPIM versus MIPS

Diferenças

Semelhanças

Construção de Programas

O SPIM simula a máquina virtual do MIPS seguindo as convenções da sua linguagem Assembler e dos seus compiladores.

Sintaxe

 

Directivas

O SPIM contempla um subconjunto de directivas do assembler do MIPS:

Segmentos e Símbolos

O SPIM não faz qualquer distinção entre as directivas (.data, .rdata, and .sdata).

.text <addr>Os próximos itens (instruções ou palavras) são incluídos no segmento de texto.Se estiver presente o argumento addr o segmento de texto inicia no endereço addr.

.ktext <addr>Idêntica à anterior para o segmento de texto do Kernel.

.data <addr>Os próximos itens são incluídos no segmento de dados.Se estiver presente o argumento addr o segmento de dados inicia no endereço addr.

.kdata <addr>Idêntica à anterior para o segmento de dados do Kernel.

.globl symDeclara sym como um símbolo global que também pode ser referenciado noutros ficheiros.

.extern sym sizeDeclara a estrutura de dados declarada sym como um símbolo global que tem size octetos de comprimento.Sugere que aquela estrutura seja colocada numa posição de memória acessível através do registo $gp.

Dados

.align nAlinhamento dos dados em quadros de octetos.
- meia palavra (dois octectos);
- palavra ( quatro octetos);
- desliga o mecanismo de alinhamento até uma próxima directiva .data or .kdata .

.ascii strA cadeia de caracteres não terminada pelo caracter zero é guardada sequencialmente na memória.

.asciiz strIdêntica à anterior com a cadeia de caracteres terminada pelo caracter zero.

.byte b1, ..., bnGuarda os octectos sequencialmente na memória.

.space naloca octectos de espaço no segmento de dados.

.half h1, ..., hnGuarda os valores de 16-bits (meia palavra) sequencialmente na memória.

.word w1, ..., wnGuarda os valores de 32-bits (palavras) sequencialmente na memória.

.float f1, ..., fnGuarda os valores em vírgula flutuante ( precisão simples).

.double d1, ..., dnGuarda os valores em vírgula flutuante ( precisão dupla).

Exemplo

        .data
  item: .word 1
        .text  
  main: lw $t0, item        # coloca 1 no registo $t0

About this document ...

This document was generated using the LaTeX2HTML translator Version 0.6.4 (Tues Aug 30 1994) Copyright © 1993, 1994, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html -show_section_numbers -split 0 spim.tex.

The translation was initiated by Joao Luis Sobral on Wed Oct 16 11:45:02 WET 1996


Joao Luis Sobral
Wed Oct 16 11:45:02 WET 1996