35
DCA-FEEC-UNICAMP: Introdução à Computação Digital - julho2011 - Prof. Léo Pini Magalhães 559 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

9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

DCA-FEEC-UNICAMP: Introdução à Computação Digital – julho 2011 - Prof. Léo Pini Magalhães 566

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 ; pseudo instrução - porta de status da interfaceRD: EQU 10002 ; pseudo instrução - porta de dados (saída)

Page 9: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 ; pseudo instrução - porta de controle da interface

Page 10: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

Linguagem de Montagem – cont.

Exemplos de Instruções Assembly – cont.

• ARM – como máquina de 2 endereços (opção Thumb)

MOV R2, R1 ; R2 � (R1)

• ARM – como máquina de 3 endereços

ADD R1, R2, #4 ; R1 � (R2) + 4

Exemplo de teste de estado de Interface (no simulador #ARMSim via SWI)

PROG: SWI 0x202 ; entrada do estado para R0CMP R0, #0x01 ; testa o bit 0 da palavra de estado

Page 11: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 12: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 13: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

Linguagem de Montagem – cont.Exemplos de Pseudo-Instruções no ARM (Simulador )– cont.

Definição de conteúdo de memória

x: .word 5000 ; a posição de memória conterá o valor 5000

Definição de fim de programa (com relação a montagem)

.end

Exemplo: o reg. R1 recebe o conteúdo da constante x que é 5000

x: .word 5000

LDR R2, =x

LDR R1, [R2]

Page 14: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 15: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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

N° comando Instrução End. Relativo Código Objeto

0 A: DW 10 0 00000000000010101 B: DW 20 2 00000000000101002 C: DS 7 4 0000000000000000

: :: :

16 00000000000000003 MOVE A,D1 18 0011001000111000

20 00000000000000004 LOOP: ADD B, D1 22 1101001000111000

24 00000000000000105 MOVE D1, C 26 0011000111000001

28 0000000000000100: : : :n END

Page 16: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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

N° comando Instrução End. Relativo Código Objeto

0 A: DW 10 0 00000000.000010101 B: DW 20 2 00000000.000101002 C: DS 7 4 0000000000000000

: :: :

16 00000000000000003 MOVE A,D1 18 0011001000111000

20 00000000000000004 LOOP: ADD B, D1 22 1101001000111000

24 00000000000000105 MOVE D1, C 26 0011000111000001

28 0000000000000100: : : :n END

byte0 , 12, 3

7 x 2bytes

end.A

end.C

end.B

modo Abs. - Reg.

Page 17: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 anterior: endereços 18 a 21 (em bytes)

end. 18

end. 20

modo000000

Page 18: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 19: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 20: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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

Mnemônico Código de Operação Comprimento

(bytes)

Rotina de

Tratamento

de operandos

: : : :

MOVE 00xx ???????? ?????? 2 a 6 RMOV

RTS 0100 1110 0111 0101 2 RRTS

: : : :

00=byte; 10=long; 11=word

Page 21: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 22: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

Estruturas de dados no processo de

montagem – cont.

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

Exemplo de tabela TPI – Tabela de Pseudoinstruções

Mnemônico Comprimento

(bytes)

Rotina de

Tratamento

: : :

ORG - RORG

DW 2 RDW

DC.B 1 :

DC.W 2 :

DC.L 4 :

: : :

Page 23: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 573)

Símbolo Valor

(em decimal)

A 0000

B 0002

C 0004

LOOP 0022

Page 24: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 25: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 26: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

não encontrou

O processo de montagem – cont.

CP ← 0

CP ← valor

CP ← CP + L

PASSO 2

busca TPI

busca TIM

L ← comprimentodos dados

L ← comprimentoda instrução

guardar rótulo na TScom CP

encontrou

encontrou

ORGEQU ENDDWDS

não encontrou

Passo 1 – processar símbolos

ERRO

guardar rótulo na TScom valor

Page 27: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 28: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 29: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 573 temos palavra de 8 bits (1 byte) bem como outros códigos de operação e comprimentos de instrução.

Page 30: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

Exemplo – cont.

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

Mnemônico

(*)

Código de

Operação

(hexadecimal)

Comprimento

(bytes)

Rotina de

Tratamento

de operandos

MOVE R0 11 3 RMOV

MVI R1 21 2 RMVI

HLT 00 1 RHLT

JNZ 60 3 RJMP

DCR R0 30 1 RDCR

: : : :

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

Page 31: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

Exemplo – cont.

Mnemônico Rotina de

Tratamento

ORG RORG

END REND

DS RDS

DW RDW

: :

TPI - TABELA DE PSEUDOINSTRUÇÕES

Page 32: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 33: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 Símbolo Valor

START 0100

VOLTA 0103

DADO 010A

Tabela de Símbolos

Page 34: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

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 35: 9. Software de Sistema -Montadoresleopini/DISCIPLINAS/EA869/2018-1/m1-m… · Programas Utilitários Programas de Aplicação Usuário Software Aplicativo Software de Sistema Hardware

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

9.7 Exercícios

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

2. Considere o simulador ARM e o Assembler explicado neste capítulo. Forneça o equivalente no ARM para as seguintes pseudo instruções: ORG, GLOB, EXTERN, DW, END, EQU, DS, ADR. Foi possível mapear todas ? Hápseudos no Simulador não definidas neste capítulo ?