9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro...

33
DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 459 9. Software de Sistema - Montadores (capítulo 9 do livro texto) Carregadores Montador Compiladores Sistema Operacional (Gerenciador de Processador, Memória, E/S, etc) Microprogramas Circuitos Físicos Ligadores Processador de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

Transcript of 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro...

Page 1: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 459

9. Software de Sistema - Montadores(capítulo 9 do livro texto)

CarregadoresMontadorCompiladores

Sistema Operacional(Gerenciador de Processador, Memória, E/S, etc)

Microprogramas

Circuitos Físicos

LigadoresProcessadorde Macro

Depuradores

ProgramasUtilitários

Programasde Aplicação

Usuário SoftwareAplicativo

SoftwaredeSistema

Hardware

Page 2: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 460

Software de Sistema – cont.

Software de Sistema é um conjunto de programas que define a maneira como os diversos elementos do hardware devem operar de modo a resolver os problemas dos usuários de forma simples e eficiente.

SISTEMA COMPUTACIONAL = HARDWARE + SOFTWARE DE SISTEMA

Page 3: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 461

Software de Sistema – cont.

Sem um software de sistema os usuários seriam responsáveis pelo controle direto de todas as operações executadas pelos elementos de hardware.

• os programas seriam escritos em linguagem de máquina;

• o programador seria responsável pelo carregamento, na memória, do programa a ser executado;

• não seria fácil utilizar os mecanismos de entrada e saída, exigindo-se conhecimento das peculiaridades de cada periférico e fazendo com que o esforço de programação fosse desviado do problema a ser resolvido;

• o programador seria responsável pelo gerenciamento do uso da memória para garantir a completa execução de um programa;

• em caso de sistemas com múltiplos usuários, o gerenciamento dos recursos existentes e a sincronização entre os diversos programas seriam extremamente complexos; etc.

Page 4: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 462

9.1 Montadores (Assemblers)

Um Montador é um programa cujos dados de entrada são sequências de caracteres que constituem o programa em Linguagem Simbólica, de Montagem ou "Assembly", e cujo resultado é um conjunto de palavras de máquina (sequências de bits) que constituem o programa em linguagem de máquina.

O programa gerado, em linguagem de máquina, pode ser carregado na memória e executado ("load and go"), ou ser a entrada de outro programa, o Carregador, que após algum processamento para adequar os endereços ao bloco de memória disponível, carrega-o na memória para ser executado.

Page 5: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 463

Montadores (Assemblers) – cont.

MONTADOR

tabelas

Programa emlinguagem de

montagem( Assembly )

Programa emlinguagem demáquina

Esquema de funcionamento de um Montador típico

Page 6: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 464

9.2 Linguagem de Montagem – L. Assembly

FORMATO GENÉRICO DE INSTRUÇÃO

<RÓTULO> <CÓDIGO DE OPERAÇÃO> <OPERANDOS/MODIFICADORES> <COMENTÁRIOS>

RÓTULO - composto de variáveis alfanuméricas, iniciando com letras, identifica endereços onde são armazenados instruções e dados;

CÓDIGO DE OPERAÇÃO - conjunto de letras que formam mnemônicos para as instruções;

OPERANDOS - identificam variáveis, pelos rótulos, ou registradores da UCP;

MODIFICADORES - identificam modos de endereçamento;

COMENTÁRIOS - descrevem o programa.

Page 7: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 465

Linguagem de Montagem – cont.

Exemplo:

ROT: MOVE R1,R2 ; armazena o conteúdo do registrador R1 em R2

DELIMITADORES

Os campos da instrução em linguagem simbólica são separados por delimitadores.

Novamente, estes delimitadores são definidos pelo projetista do MONTADOR.

Exemplos de delimitadores: espaço - entre campos

: - separa o rótulo ; - separa o comentário , - separa operandos

Page 8: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 466

Linguagem de Montagem – cont.

Exemplos de Instruções Assembly

• Máquina de 1 endereço

LDA S1 ; load S1 em Acc ou Acc � (S1)

ADD S2 ; Acc � (Acc) + (S2)

STORE R ; store R ou R � (Acc)

Exemplo de programa de Saída de dado (isolada)

LOOP: IN RS ; leitura do registrador RSTSTBIT 2 ; bit 2 de RS=1 ?JNZ LOOP ; loop de espera ou saída de dado ?LDA dado ; Acc � (dado)OUT RD ; porta RD � (Acc): : : :

RS: EQU 10000 ; porta de status da interfaceRD: EQU 10002 ; porta de dados (saída)

Page 9: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 467

Linguagem de Montagem – cont.

Exemplos de Instruções Assembly – cont.

• Máquina de 2 endereços

MOVE S1, R ; R � (S1)

ADD S2, R ; R � (R) + (S2)

Exemplo de programação de Interface (E/S mapeada)

PROG: MOVE #10, RC ; RC � 10: : : : : : : :

RC: EQU 1000A ; porta de controle da interface

Page 10: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 468

Linguagem de Montagem – cont.Exemplos de Pseudo-Instruções

Pseudo-instruções facilitam a programação. São diretrizes para os programasmontadores, não gerando código executável.

DC / DW / DB - atribui a uma posição da memória um valor (dado);

CINCO: DW 5 ; a posição de memória referenciada por CINCO recebe o valor 5

DS - define área alocada em quantidade de palavras/bytes

AREA: DS 20 ; reserva 20 posições:

MOVE #3,AREA+5 ; acesso à área especificada

EQU - define rótulo

ABC: EQU 1028 ; o rótulo ABC equivale à posição de memória 1028

Page 11: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 469

Linguagem de Montagem – cont.Exemplos de Pseudo-Instruções – cont.

ORG - define origem

ORG 1000 ; o que segue (dado ou instrução) estará na posição 1000

ADR - define que a posição contém o endereço do rótulo especificado

X1: DW 12:

AX1: ADR X1 ; a posição AX1 contém o endereço X1

END - define fim de programa

Exemplo: ......ORG 5000

X1: DW 12: : : :

AX1: ADR X1 ; conteúdo de AX1 é o end. de X1

Page 12: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 470

9.3 Tarefas de um Montador

Para traduzir o programa em linguagem simbólica para um programa em linguagem de máquina, o Montador deve :

a. substituir os mnemônicos da instrução e modificadores de endereço pelosequivalentes binários;

b. determinar posições de memória, relativas ao programa, para os endereçossimbólicos (rótulos);

c. substituir todas as referências a um dado endereço simbólico pelo endereçobinário correspondente.

Para determinar posições de memória para os endereços simbólicos (b), o

montador utiliza a informação dada pelo programador nas pseudoinstruções;

estas não são traduzidas para Linguagem de Máquina, servindo somente

para orientar o montador na geração do programa em linguagem de máquina.

Page 13: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 471

Tarefas de um Montador-cont.exemplo de tradução por um montador (palavra de 16 bits) – Motorola 68000

ENDn::::

000000000000010028001100011100000126MOVE D1, C5000000000000001024110100100011100022LOOP: ADD B, D14000000000000000020001100100011100018MOVE A,D13000000000000000016

::::

00000000000000004C: DS 7200000000000101002B: DW 20100000000000010100A: DW 100

Código ObjetoEnd. RelativoInstruçãoN° comando

Page 14: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 472

Tarefas de um Montador-cont.exemplo de tradução por um montador (palavra de 16 bits) – Motorola 68000

ENDn::::

000000000000010028001100011100000126MOVE D1, C5000000000000001024110100100011100022LOOP: ADD B, D14000000000000000020001100100011100018MOVE A,D13000000000000000016

::::

00000000000000004C: DS 7200000000.000101002B: DW 20100000000.000010100A: DW 100

Código ObjetoEnd. RelativoInstruçãoN° comando byte0 , 12, 3

7 x 2bytes

end.A

end.C

end.B

modo Abs. - Reg.

Page 15: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 473

Código de máquina (68000) �

0 0 x x y y y z z z y y y z z z

size op.destino op.fonte

MOVE A, D1

001word=11 111

seguido do valor do rótulo A (seu endereço)

Na transparência 472: endereços 18 a 21 (em bytes)‏

end. 18

end. 20

modo000000

Page 16: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 474

9.4 Estruturas de dados no processo de

montagem

Montador

(ASM)

P L M

T P IT I M

P F

T S

Programa Fonte Programa em Linguagem deMáquina

Tabela de Símbolos

Tabela de Instruções deMáquina

Tabela de Pseudo-Instruções

Page 17: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 475

Estruturas de dados no processo de

montagem – cont.Tabela de Instruções de Máquina - TIM

• TIM associa o mnemônico de uma instrução com a instrução de máquina em binário• a tabela TIM – a seguir - pode possuir vários campos com informações relevantes.

O número de campos que compõe a tabela TIM depende de características específicas do processador e da sintaxe da linguagem simbólica.

Dois campos estão sempre presentes na tabela TIM :

MNEMÔNICO - onde estão os mnemônicos das instruções, definidos pela sintaxe da linguagem simbólica.

CÓDIGO DE OPERAÇÃO - onde estão os códigos de operação das instruções de máquina.

Outros campos podem completar a informação :

COMPRIMENTO DA INSTRUÇÃO (em bytes) - contém o comprimento da instrução.

ROTINA DE TRATAMENTO DE OPERANDOS - onde estão relacionadas as rotinas que o montador deve ativar para gerar o endereço dos operandos, quando estes são expressões ou dependem dos modos de endereçamento.

Page 18: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 476

Estruturas de dados no processo de

montagem – cont.

Tabela de Instruções de Máquina – TIM – cont.

Exemplo de tabela TIM - TABELA DE INSTRUÇÕES DE MÁQUINA

::::

RRTS20100 1110 0111 0101RTS

RMOV2 a 600xx ???????? ??????MOVE

::::

Rotina de

Tratamento

de operandos

Comprimento

(bytes)

Código de OperaçãoMnemônico

00=byte; 10=long; 11=word

Page 19: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 477

Estruturas de dados no processo de

montagem – cont.

Tabela de Pseudo-Instruções – TPI

• relaciona o mnemônico da pseudoinstrução com a rotina que o montador deveativar para processar a pseudoinstrução

• a tabela TPI pode possuir vários campos com informações relevantes.

Dois campos estão sempre presentes na tabela TPI :

MNEMÔNICO - onde estão os mnemônicos das pseudoinstruções, definidos pela sintaxe da linguagem simbólica.

ROTINA DE TRATAMENTO DE OPERANDOS - onde estão relacionadas as rotinas que o montador deve ativar para processar a pseudoinstrução.

Outros campos podem completar a informação, como :

COMPRIMENTO DA PSEUDOINSTRUÇÃO - contém o número de bytes ou palavras que deve ser reservado para pseudoinstruções como em DB (Define Byte) ou DW (Define Word).

Page 20: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 478

Estruturas de dados no processo de

montagem – cont.

Tabela de Pseudo-Instruções – TPI – cont.

Exemplo de tabela TPI – Tabela de Pseudoinstruções

:::

:4DC.L

:2DC.W

:1DC.B

RDW2DW

RORG-ORG

:::

Rotina de

Tratamento

Comprimento

(bytes)

Mnemônico

Page 21: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 479

Estruturas de dados no processo de

montagem – cont.Tabela de Símbolos - TS

A Tabela de Símbolos é construída durante a montagem e relaciona cada símbolo (ou rótulo) definido no código fonte com um valor em representação binária do seu endereço de memória.

Exemplo de tabela TS – Tabela de Símbolos

(para o exemplo da transparência 472)

0022LOOP

0004C

0002B

0000A

Valor

(em decimal)

Símbolo

Page 22: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 480

9.5 O processo de montagem

Para realizar a tradução, os Montadores são geralmente implementados como Montadores de dois Passos.

Os dois Passos significam que o Montador deverá ler o programa fonte duas vezes.

Existem Montadores de 1 Passo, onde o programa fonte é lido uma única vez; porém, este fato implica em restrições no programa fonte (ver Exercícios 3, 5 e 6 do livro texto).

Para o Montador de dois Passos:

. no primeiro passo o Montador lê o código fonte e determina os endereçospara as referências simbólicas, construindo a Tabela de Símbolos.

. no segundo passo o código fonte é lido novamente e os mnemônicos dasinstruções e referências simbólicas são substituídos por códigos demáquina.

Page 23: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 481

O processo de montagem – cont.

As tarefas associadas aos dois passos são:

PASSO 1 - Definir símbolos (rótulos)

• processar pseudoinstruções, utilizando a Tabela de Pseudoinstruções; • determinar o comprimento da instrução de máquina, de acordo com a

Tabela de Instruções de Máquina; • atualizar o contador de posições CP, de acordo com o comprimento

de cada instrução ou pseudoinstrução; • guardar os valores dos símbolos (endereço equivalente) na Tabela de

Símbolos.

PASSO 2 - Gerar o programa em linguagem de máquina

• substituir símbolos por valores indicados na Tabela de Símbolos; • gerar instruções de máquina; • gerar dados (constantes definidas).

Page 24: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 482

não encontrou

O processo de montagem – cont.

CP ← 0

CP ← valor

CP ← CP + L

PASSO 2

L ← 0

busca TPI

busca TIM

L ← comprimentodos dados

L ← comprimentoda instrução

guardar rótulo = CP na TS

encontrou

encontrou

ORGEQU ENDDWDS

não encontrou

Passo 1 – processar símbolos

ERRO

Page 25: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 483

O processo de montagem – cont.

Passo 2 – gerar códigosCP ← 0

CP ← valor

CP ← CP + L

FIM

busca TPI

busca TIMcalcula / insere

constante

L ← comprimentodos dados

L ← comprimentoda instrução

processaC.O.

processaoperandos

insereno PLM

encontrou

encontrou

ORG EQU ENDDSDWnão encontrou

A cada instrução lida é feita a busca nas tabelas TPI e TIM. No Passo 2 não énecessário prover um tratamento de erro quando a instrução não pertencer às tabelas TIM e TPI; o tratamento de erro é ativado no Passo 1 e o Passo 2 não éexecutado.

No Passo 2 o contador de posições CP é zerado e o programa fonte é lido novamente.

Page 26: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 484

O processo de montagem – Fluxo de Dados

As estruturas de dados manipuladas nos passos 1 e 2 são:

• Programa Montador (ASM); • Contador de posições (CP);• Tabela de Instruções de Máquina (TIM); • Tabela de Pseudoinstruções (TPI); • Tabela de Símbolos (TS); • Programa em linguagem de Máquina (PLM).

PLMASM

PASSO 2PASSO 1

TIM

TPI

CP CP

TS

PF

Page 27: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 485

9.6 Exemplo

ORG 0100HSTART: MOVE DADO,R0VOLTA: DCR R0

JNZ VOLTA MVI #11H,R1HLT

DADO: DW 20HEND

Para ilustrar as diferenças entre processadores, neste exemplo, diferentemente do apresentado na transparência 472 temos palavra de 8 bits (1 byte) bem como outros códigos de operação e comprimentos de instrução.

Page 28: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 486

Exemplo – cont.

TIM - TABELA DE INSTRUÇÕES DE MÁQUINA

::::

RDCR130DCR R0

RJMP360JNZ

RHLT100HLT

RMVI221MVI R1

RMOV311MOVE R0

Rotina de

Tratamento

de operandos

Comprimento

(bytes)

Código de

Operação

(hexadecimal)

Mnemônico

(*)

(*) só está representada a parte que gera o C.O.

Page 29: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 487

Exemplo – cont.

::

RDWDW

RDSDS

RENDEND

RORGORG

Rotina de

Tratamento

Mnemônico

TPI - TABELA DE PSEUDOINSTRUÇÕES

Page 30: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 488

Exemplo – cont.No Passo 1 é gerada a tabela TS a partir do processamento do comprimento das instruções conforme mostrado a seguir.

Endereço (CP)0100 START: MOVE DADO,R0010101020103 VOLTA: DCR R0 0104 JNZ VOLTA 010501060107 MVI #11H,R101080109 HLT010A DADO: DW 20H

Page 31: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 489

Exemplo – cont.No Passo 1 é gerada a tabela TS a partir do processamento do comprimento das instruções conforme mostrado a seguir.

Endereço (CP)0100 START: MOVE DADO,R0010101020103 VOLTA: DCR R0 0104 JNZ VOLTA 010501060107 MVI #11H,R101080109 HLT010A DADO: DW 20H

010ADADO

0103VOLTA

0100START

ValorSímbolo

Tabela de Símbolos

Page 32: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 490

Exemplo – cont.Seguindo o algoritmo descrito no Passo 2 e utilizando a tabela gerada no Passo 1, obtemos o seguinte PLM (devemos observar que os endereços dos operandos estão armazenados em 2 bytes, por exemplo nos endereços 101-102 e 105-106) :

Endereço PLM (em hexadecimal)0100 110101 010102 0A0103 300104 600105 010106 030107 210108 110109 00010A 20

Page 33: 9. Software de Sistema -Montadoresmarco/cursos/ea869_11_1/slides/ea869-jun10... · de Macro Depuradores Programas Utilitários Programas de Aplicação Usuário Software Aplicativo

DCA-FEEC-UNICAMP: Introdução à Computação Digital - 2009 - Prof. Léo Pini Magalhães 491

9.7 Exercícios

1. Resolva os exercícios (1) a (6) do livro texto.