A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Implementando um Montador com LEX e YACC - 3

Apresentações semelhantes


Apresentação em tema: "Implementando um Montador com LEX e YACC - 3"— Transcrição da apresentação:

1 Implementando um Montador com LEX e YACC - 3

2 Trabalho 5 – Não obrigatório: até mais 1
Trabalho 5 – Não obrigatório: até mais 1.0 ponto na média (enviar para A partir de seu montador, faça um interpretador da MIPS ISA O interpretador recebe como entrada um arquivo texto contendo um programa em linguagem assembly e o executa diretamente. Ele deve percorrer o programa, a partir de seu ponto de entrada, executando cada comando. Cada instrução executada deve ser impressa e, a seguir, devem ser impressos os valores dos 32 registradores e do PC em hexadecimal, sempre com oito algarismos. O interpretador deve ser capaz de executar todas as instruções do último slide.

3 Interpretador MIPS ISA
Os circuitos que compõem um processador MIPS podem ser divididos em duas partes: Datapath – circuitos do processador responsáveis pela manipulação dos dados. Controle – circuitos responsáveis por controlar o fluxo dos dados através do datapath.

4 Interpretador MIPS ISA
Um processador é uma máquina de estados que executa a seguinte seqüência de estados continuamente: 1. Leia da memória a instrução apontada pelo registrador Program Counter (PC) 2.Incremente o PC (PC = PC + 1; ou PC = PC + 4 se a instrução for de 4 bytes) 3.Decodifique a instrução 4.Execute a instrução 5.Volte ao passo 1

5 Interpretador MIPS ISA
A memória é usada para guardar as instruções e os dados dos programas. PC guarda o endereço da instrução corrente. Somador pode ser usado para incrementar o PC de modo a fazê-lo apontar para a próxima instrução. 32 registradores para manipulação dos dados.

6 Exemplo Interpretador
- Memória: Registradores: - PC 0x27BDFFE8 0xAFA40010 0x 0xAFA20008 0x A 0x C 0x000000 0x000004 0x000008 0x00000C 0x000010 0x000014 0x000018 0x00001C 0x000020 0x000024 0x000028 0x00002C $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $30 $31 0x000008

7 Exemplo Interpretador
lw $2, 0(4) PC PC++ op rd imm 3 2 4 0x000008 Fetch instruction from Memory. Decode Instruction Execute Instruction $2 = memory[0x ] pc = pc + 1 Memory 0x C

8


Carregar ppt "Implementando um Montador com LEX e YACC - 3"

Apresentações semelhantes


Anúncios Google