Você está na página 1de 19

IX.

Software de Sistema
Usurio Programas Programas de Aplicao Utilitrios Processador Editores Depuradores de Macro de Texto Compiladores Montador Carregadores Software Aplicativo

Sistema Operacional (Gerenciador de Processador, Memria, E/S, etc) Microprogramas

Software de Sistema

Hardware Circuitos Fsicos

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

440

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 usurios de forma simples e eficiente.

SISTEMA COMPUTACIONAL = HARDWARE + SOFTWARE DE SISTEMA

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

441

Software de Sistema cont.


Sem um software de sistema os usurios seriam responsveis pelo controle direto de todas as operaes executadas pelos elementos de hardware. os programas seriam escritos em linguagem de mquina; o programador seria responsvel pelo carregamento na memria do programa a ser executado; no seria fcil utilizar os mecanismos de entrada e sada, exigindo-se conhecimento das peculiaridades de cada perifrico e fazendo com que o esforo de programao fosse desviado do problema a ser resolvido; o programador seria responsvel pelo gerenciamento do uso da memria para garantir a completa execuo de um programa; em caso de sistemas com mltiplos usurios, o gerenciamento dos recursos existentes e a sincronizao entre os diversos programas seriam extremamente complexos; etc.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

442

1. Montadores (Assemblers)
Montador um programa cujos dados de entrada so sequncias de caracteres que constituem o programa em Linguagem Simblica, de Montagem ou "Assembly", e cujo resultado um conjunto de palavras de mquina (sequncias de bits) que constituem o programa em linguagem de mquina. O programa gerado em linguagem de mquina pode ser carregado na memria e executado ("load and go"), ou ser a entrada de outro programa, o Carregador, que aps algum processamento para adequar os endereos ao bloco de memria disponvel, carrega-o na memria para ser executado.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

443

1. Montadores (Assemblers) cont.


Esquema de funcionamento de um Montador tpico
Programa em linguagem de montagem ( Assembly ) MONTADOR Programa em linguagem de mquina

tabelas

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

444

2. Linguagem de Montagem L. Assembly


FORMATO GENRICO DE INSTRUO
<RTULO> <CDIGO DE OPERAO> <OPERANDOS/MODIFICADORES> <COMENTRIOS>

RTULO - composto de variveis alfanumricas, iniciando com letras, identifica endereos onde so armazenados instrues e dados; CDIGO DE OPERAO - conjunto de letras que formam mnemnicos para as instrues; OPERANDOS - identificam variveis, pelos rtulos, ou registradores da UCP; MODIFICADORES - identificam modos de endereamento; COMENTRIOS - descrevem o programa.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

445

2. Linguagem de Montagem cont.


Exemplo: ROT: MOVE R1,R2 ; armazena o contedo do registrador R1 em R2

DELIMITADORES Os campos da instruo em linguagem simblica so separados por delimitadores. Estes delimitadores so definidos pelo projetista do MONTADOR. Exemplos de delimitadores: espao - entre campos : - separa o rtulo ; - separa o comentrio , - separa operandos

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

446

2. Linguagem de Montagem cont.


Exemplos de Instrues Assembly Mquina de 1 endereo LDA ADD S1 S2 ; load S1 em Acc ou Acc ; Acc (Acc) + (S2) (Acc) (S1)

STORE R

; store R ou R

Exemplo de programa de Sada de dado (isolada) LOOP: IN TSTBIT JNZ LDA OUT : : : : EQU EQU RS 2 LOOP dado RD 10000 10002 ; leitura do registrador RS ; bit 2 de RS=1 ? ; loop de espera ou sada de dado ? ; Acc (dado) ; porta RD (Acc) ; porta de status da interface ; porta de dados (sada)
447

RS: RD:

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

2. Linguagem de Montagem cont.


Exemplos de Instrues Assembly cont. Mquina de 2 endereos MOVE ADD S1, R S2, R ;R ;R (S1) (R) + (S2)

Exemplo de programao de Interface (E/S mapeada) PROG: MOVE #10, RC ; RC 10 :::: : : : : RC: EQU 1000A ; porta de controle da interface

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

448

2. Linguagem de Montagem cont.


Exemplos de Pseudo-Instrues Pseudo-instrues facilitam a programao. So diretrizes para os programas montadores, no gerando cdigo executvel.

DC / DW / DB - atribui um valor (dado) a uma posio da memria; CINCO: DW 5 ; a posio de memria referenciada por CINCO recebe o valor 5

DS - define rea alocada em quantidade de palavras/bytes AREA: DS 20 ; reserva 20 posies : MOVE #3,AREA+5 ; acesso rea especificada

EQU - define rtulo ABC: EQU 1028 ; o rtulo ABC equivale posio de memria 1028

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

449

2. Linguagem de Montagem cont.


Exemplos de Pseudo-Instrues cont. ORG - define origem ORG 1000 ; o que segue (dado ou instruo) estar na posio 1000

ADR - define que a posio contm o endereo do rtulo especificado X1: DW 12 : AX1: ADR X1

; a posio AX1 contm o endereo X1

END - define fim de programa Exemplo: ...... X1: AX1: ORG DW :::: ADR 5000 12 X1 ; contedo de AX1 o end. X1 (5000)
450

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

3. Tarefas de um Montador
Para traduzir o programa em linguagem simblica para um programa em linguagem de mquina, o Montador deve : a. b. c. substituir os mnemnicos da instruo e modificadores de endereo pelos equivalentes binrios; determinar as posies de memria (endereos binrios) correspondentes aos endereos simblicos (rtulos) utilizados no programa; substituir todas as referncias a um dado endereo simblico pelo endereo binrio correspondente.

Para determinar as posies de memria para os endereos simblicos (b), o montador utiliza a informao dada pelo programador nas pseudoinstrues; estas no so traduzidas para Linguagem de Mquina, servindo somente para orientar o montador na gerao do cdigo objeto.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

451

Exemplo de Cdigo de Mquina (68000)

453:

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

452

3. Tarefas de um Montador-cont.
Exemplo de traduo por um montador (palavra de 16 bits) Motorola 68000 N comando 0 1 2 Instruo A: DC.W 10 B: DC.W 20 C: DS 7 End. Relativo 0 2 4 : : 16 18 20 22 24 26 28 : Cdigo Objeto 0000000000001010 0000000000010100 0000000000000000 : : 0000000000000000 0011001000111000 0000000000000000 1101001000111000 0000000000000010 0011000111000001 0000000000000100 :

3 4 5 : n LOOP:

MOVE A,D1 ADD B,D1

MOVE D1, C : END

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

453

3. Tarefas de um Montador-cont.
exemplo de traduo por um montador (palavra de 16 bits) Motorola 68000 N comando 0 1 2 Instruo A: DC.W 10 B: DC.W 20 C: DS 7 modo Abs. - Reg. 3 4 5 : n LOOP: MOVE A,D1 ADD B, D1 MOVE D1, C : END End. Relativo 0 2 4 : : 16 18 20 22 24 26 28 : Cdigo Objeto 00000000.00001010 00000000.00010100 0000000000000000 : : 0000000000000000 0011001000111000 0000000000000000 1101001000111000 0000000000000010 0011000111000001 0000000000000100 : byte 0,1 2, 3

7x2 bytes end.A end.B end.C

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

454

4. Estruturas de dados no processo de montagem


TS
Tabela de Smbolos

PF
Programa Fonte

Montador (ASM)

PLM
Programa em Linguagem de Mquina

TIM
Tabela de Instrues de Mquina

TPI
Tabela de Pseudo-Instrues

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

455

4. Estruturas de dados no processo de montagem cont.


Tabela de Instrues de Mquina - TIM TIM associa o mnemnico de uma instruo com a instruo de mquina em binrio a tabela TIM a seguir - pode possuir vrios campos com informaes relevantes.

O nmero de campos que compe a tabela TIM depende de caractersticas especficas do processador e da sintaxe da linguagem simblica. Dois campos esto sempre presentes na tabela TIM : MNEMNICO - onde esto os mnemnicos das instrues definidos pela sintaxe da linguagem simblica. CDIGO DE OPERAO - onde esto os cdigos de operao das instrues de mquina. Outros campos podem completar a informao : COMPRIMENTO DA INSTRUO (em bytes) - contm o comprimento da instruo. ROTINA DE TRATAMENTO DE OPERANDOS - onde esto relacionadas as rotinas que o montador deve ativar para gerar o endereo dos operandos quando estes so expresses ou dependem dos modos de endereamento.
UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes 456

4. Estruturas de dados no processo de montagem cont.


Tabela de Instrues de Mquina TIM cont. Exemplo de tabela TIM - TABELA DE INSTRUES DE MQUINA

Mnemnico

Cdigo de Operao

Comprimento (bytes) : 2 a 10 2 :

Rotina de Tratamento de operandos : RMOV RRTS :

: MOVE RTS :

: 00xx ???????? ?????? 0100 1110 0111 0101 :

00=byte; 10=long; 11=word


UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes 457

4. Estruturas de dados no processo de montagem cont.


Tabela de Pseudo-Instrues TPI
relaciona o mnemnico da pseudoinstruo com a rotina que o montador deve ativar para processar a pseudoinstruo a tabela TPI pode possuir vrios campos com informaes relevantes.

Dois campos esto sempre presentes na tabela TPI : MNEMNICO - onde esto os mnemnicos das pseudoinstrues, definidos pela sintaxe da linguagem simblica. ROTINA DE TRATAMENTO DE OPERANDOS - onde esto relacionadas as rotinas que o montador deve ativar para processar a pseudoinstruo. outros campos podem completar a informao, como : COMPRIMENTO DA PSEUDOINSTRUO - contm o nmero de bytes ou palavras que deve ser reservado para pseudoinstrues como em DB (Define Byte) ou DW (Define Word).
UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes 458

4. Estruturas de dados no processo de montagem cont.


Tabela de Pseudo-Instrues TPI cont.
Exemplo de tabela TPI Tabela de Pseudoinstrues Mnemnico : ORG DC.B DC.W DC.L : Comprimento (bytes) : 1 2 4 : Rotina de Tratamento : RORG RDC RDC RDC :

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

459

10

Exemplos do uso de Pseudos do 68000


Endereo Contedo da Memria

001000 001002

0A 00 12 41 72 6C 38 31 38 00 00 00 00

42 0A 34 70 69 20 20 39 35 00 01 00 02

DC.B 10,66

First Date

ORG DC.B DC.L DC.B DC.L

$001000 10,66 $0A1234 April 8 1985 1,2

001004 001006 001008 00100A 00100C 00100E 001010 001012 001014 001016 001018 00101A

DC.L $0A1234

DC.B April 8 1985

DC.L 1,2

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

460

4. Estruturas de dados no processo de montagem cont.


Tabela de Smbolos - TS
A Tabela de Smbolos construda durante a montagem e relaciona cada smbolo (ou rtulo) definido no cdigo fonte com um valor em representao binria do seu valor (ou endereo de memria no caso de rtulo). Exemplo de tabela TS Tabela de Smbolos (para o exemplo da transparncia 444) Smbolo A B C LOOP Valor (em decimal) $0000 $0002 $0004 $0022

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

461

11

5. O processo de montagem
Para realizar a traduo, os Montadores so 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; porm, este fato implica em restries no programa fonte (ver Exerccios 3, 5 e 6 do livro texto). Para o Montador de dois Passos: no primeiro passo o Montador l o cdigo fonte e determina os endereos para as referncias simblicas, construindo a Tabela de Smbolos. no segundo passo o cdigo fonte lido novamente e os mnemnicos das instrues e referncias simblicas so substitudos por cdigos de mquina.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

462

5. O processo de montagem cont.


As tarefas associadas aos dois passos so: PASSO 1 - Definir smbolos (rtulos) processar pseudoinstrues, utilizando a Tabela de Pseudoinstrues; determinar o comprimento da instruo de mquina de acordo com a Tabela de Instrues de Mquina; atualizar o contador de posies CP de acordo com o comprimento de cada instruo ou pseudoinstruo; guardar os valores dos smbolos (endereo equivalente) na Tabela de Smbolos.

PASSO 2 - Gerar o programa em linguagem de mquina substituir smbolos por valores indicados na Tabela de Smbolos; gerar instrues de mquina; gerar dados (constantes definidas).

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

463

12

5. O processo de montagem cont.


CP 0 l
busca TPI encontrou DC DS EQU ORG END PASSO 2

Passo 1 processar smbolos

no encontrou busca TIM

encontrou L comprimento L comprimento da instruo dos dados

L0

CP valor

processa rtulo CP CP + L

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

464

5. O processo de montagem cont.


CP 0 l encontrou busca TPI DC DS no encontrou calcula / insere busca TIM constante encontrou L comprimento L comprimento da instruo dos dados processa C.O. processa operandos insere no P.O. CP CP + L

Passo 2 gerar cdigos


No Passo 2 o contador de posies CP zerado e o programa fonte lido novamente.

ORG

EQU

END FIM

CP valor

A cada instruo lida feita a busca nas tabelas TPI e TIM. No Passo 2 no necessrio prover um tratamento de erro quando a instruo no pertencer s tabelas TIM e TPI; o tratamento de erro ativado no Passo 1 e o Passo 2 no executado.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

465

13

5. O processo de montagem Fluxo de Dados


As estruturas de dados manipuladas nos passos 1 e 2 so: Programa em linguagem Assembly (ASM); Contador de posies (CP); Tabela de Instrues de Mquina (TIM); Tabela de Pseudoinstrues (TPI); Tabela de Smbolos (TS); Programa em linguagem de Mquina (LM). ASM CP PASSO 1 TIM TPI TS
UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes 466

LM PASSO 2 CP

6. Exemplo
START: VOLTA: ORG MOVE DCR JNZ MVI HLT DC.W END 0100H DADO,R0 R0 VOLTA #11,R1 $20

DADO:

Para ilustrar as diferenas entre processadores, neste exemplo temos palavra de 8 bits (1 byte) bem como outros cdigos de operao e comprimentos de instruo.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

467

14

6. Exemplo cont.
TIM - TABELA DE INSTRUES DE MQUINA
Mnemnico (*) MOVE R0 MVI R1 HLT JNZ DCR R0 : Cdigo de Operao (hexadecimal) 11 21 00 60 30 : Comprimento (bytes) 3 2 1 3 1 : Rotina de Tratamento de operandos RMOV RMVI RHLT RJMP RDCR :

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

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

468

6. Exemplo cont.
TPI - TABELA DE PSEUDOINSTRUES

Mnemnico ORG END DC :

Rotina de Tratamento RORG REND RDC :

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

469

15

6. Exemplo cont.
No Passo 1 gerada a tabela TS a partir do processamento do comprimento das instrues conforme mostrado a seguir.
Endereo (CP) 0100 START: 0101 0102 0103 VOLTA: 0104 0105 0106 0107 0108 0109 010A DADO:

MOVE DADO,R0

DCR JNZ

R0 VOLTA

MVI HLT DC.W

#11,R1

$20

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

470

6. Exemplo cont.
No Passo 1 gerada a tabela TS a partir do processamento do comprimento das instrues conforme mostrado a seguir.
Endereo (CP) 0100 START: 0101 0102 0103 VOLTA: 0104 0105 0106 0107 0108 0109 010A DADO: MOVE DADO,R0

DCR JNZ

R0 VOLTA

MVI HLT DC.W

#$11,R1 Tabela de Smbolos $20 Smbolo START VOLTA DADO Valor 0100 0103 010A

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

471

16

6. Exemplo cont.
Seguindo o algoritmo descrito no Passo 2 e utilizando a tabela gerada no Passo 1, obtemos o seguinte cdigo objeto (devemos observar que os endereos dos operandos esto armazenados em 2 bytes, por exemplo nos endereos 101-102 e 105-106) :

Endereo 0100 0101 0102 0103 0104 0105 0106 0107 0108 0109 010A 010B

Cdigo Objeto (em hexadecimal) 11 01 0A 30 60 01 03 21 11 00 00 20


472

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

Problemas

1.

Resolva os exerccios (1) a (6) do livro texto.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

473

17

Comentrios Finais
O captulo inicial do texto apresentou ao leitor Computao como uma disciplina na qual o programador, antes de iniciar a resoluo de seu problema, seja este simples ou elaborado, deve perguntar-se sobre a natureza do problema em questo, abordando as noes de procedimento, terminao e complexidade, que levam ao estudo de algoritmos e de sua tratabilidade. Os textos citados como referncia na Seo I.2 permitem um aprofundamento neste importante tema, muitas vezes desconsiderado pelos programadores menos experientes.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

474

Comentrios Finais cont.

Os prximos captulos at o captulo oito, ofereceram ao leitor uma viso introdutria porm completa dos aspectos bsicos envolvidos no tema organizao de computadores. A abordagem ateve-se aos processadores CISC (Complex Instruction Set Computer), que so mquinas de arquitetura "von Neumann" que procuram maximizar o nmero de funes oferecidas ao programador (da o termo complex).

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

475

18

Comentrios Finais cont.


Assim o leitor agora est preparado para iniciar-se em aspectos mais profundos da Arquitetura de Computadores tais como o detalhamento do funcionamento dos barramentos, interfaces, memrias (e suas diferentes tecnologias) e UCPs. Alm disto, aspectos avanados de controle envolvendo pipelining podem ser abordados. Da mesma forma, outras arquiteturas e filosofias de funcionamento podem ser estudadas como arquiteturas RISC (Reduced Instruction Set Computer), atualmente presentes na maioria das Estaes de Trabalho (aqui reduced aplica-se devido a limitao do conjunto de instrues disponveis), bem como arquiteturas envolvendo multiprocessamento (computadores SIMD single instruction multiple data e MIMD - multiple instruction multiple data).

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

476

Comentrios Finais cont.

O ltimo captulo introduziu a questo do software que envolve (se sobrepe ao) o hardware/firmware de um computador. O prximo passo nesta direo ser o estudo da primeira camada de software bsico, envolvendo os tpicos de carregadores, compiladores (e por conseguinte linguagens) e funes bsicas de um sistema operacional (escalonamento, gerncia de memria e gerncia de processos). Alm destes tpicos o leitor deve estar atento para a rea de Redes de Computadores e todos seus aspectos correlatos, j que a computao hoje em dia tem em rede seu paradigma mais importante.

UNICAMP-FEEC: ea869-2013 - Profs. Lo Pini Magalhes & Maurcio Ferreira Magalhes

477

19

Você também pode gostar