Você está na página 1de 24

EA869 Prof.

Von Zuben
DCA/FEEC/Unicamp

Lista de Exerccios Preparao para Prova 2


Questo 1
Em um determinado programa, uma subrotina SUB1 chamada muitas vezes, com um
conjunto diferente de parmetros reais a cada chamada. Sendo R1 e R2 os registradores que
armazenam os dois parmetros formais de entrada e R3 o registrador que armazena o parmetro
formal de sada, escreva uma macro de nome CHAMASUB que substitua o trecho de cdigo
associado chamada da subrotina. Considerando passagem de parmetros por valor e
parmetros reais como aqueles que se encontram nas posies de memria DADO1, DADO2
(para entrada) e REST (para sada), um exemplo de cdigo a ser substitudo pela chamada da
macro o seguinte:
MOV DADO1, R1
MOV DADO2, R2
CALL SUB1
MOV R3,REST
e a chamada da macro fica:
CHAMASUB SUB1, DADO1, DADO2, REST
1

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 2
Sabendo que a conveno de passagem de parmetros por rea associada subrotina,
possvel implementar um cdigo relocvel? Se a resposta for afirmativa, ento realize as
alteraes necessrias para que programa e subrotina tenham cdigo relocvel. Os cdigos a
serem alterados so aqueles apresentados nas figuras 5.11 e 5.12 (pg. 142) do livro-texto.

Questo 3
Um cdigo relocvel aquele cuja execuo independe de sua posio na memria. Um cdigo
reentrante aquele cuja execuo independe da posio de seus dados. Pergunta: Todo cdigo
reentrante relocvel? Caso sua resposta seja negativa, apresente ento um exemplo de cdigo
reentrate mas no-relocvel.

Questo 4
Considere uma subrotina que calcule:
X=A*B+CD

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

O programa principal chama a sub-rotina passando os parmetros reais A, B, C e D, definidos


com valores iniciais 13, 24, 56 e 35, respectivamente. A passagem de parmetros deve ser por
valor em rea associada subrotina.
a) Especifique (descreva) a conveno de passagem de parmetros da sub-rotina.
b) Escreva a sub-rotina com os trechos de cdigo que mostrem leitura e manipulao dos
parmetros e retorno do resultado.
c) Escreva os trechos do programa principal que mostrem as instrues necessrias para a
chamada e retorno do resultado da sub-rotina.
d) Modifique a sub-rotina, considerando o caso em que so passados os endereos dos
parmetros.

Questo 5
Caso se deseje resolver o problema da Questo 4 usando uma macro, escreva a definio da
macro.

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 6
Uma subrotina recebe um parmetro de entrada passado por valor e retorna o quadrado deste
valor, na forma:
SUB:

POP
POP
MOVE
MUL
PUSH
PUSH
RTS

R3
R4
R4,R5
R5,R4
R4
R3

Escreva o trecho de programa que prepara a chamada da subrotina e a leitura do valor de


retorno.
Nota: O valor a ser passado subrotina est no registrador R8 e o valor de retorno deve estar no
registrador R9. Alm disto, o registrador R4 deve poder ser utilizado em qualquer ponto do
programa que chama a subrotina. O programa no utiliza nenhum outro registrador alm de R4,
R8 e R9.
4

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 7
Quando um programa faz uso de subrotina, sabido o momento exato (em relao seqncia de instrues do programa) em
que a subrotina chamada (chamada sncrona). Para implementar o desvio, existem recursos de hardware para preservar o
endereo de retorno e para realizar a atualizao do registrador PC. Mas ainda restam duas tarefas a serem executadas pelo
programa (por software) nestas circunstncias:

preparar o envio de parmetros de entrada e o recebimento do resultado, de acordo com a conveno estabelecida entre
programa e subrotina;

preservar, para posterior recuperao, o contedo de registradores e outras rea de dados que tambm sero usadas pela
subrotina (esta tarefa poderia ser realizada pela subrotina). Como esta tarefa ocupa tempo de CPU, j que envolve
transferncia de dados, s devem ser preservados e posteriormente recuperados os recursos efetivamente compartilhados.

Uma interrupo, por sua vez, embora tambm represente um desvio na seqncia de execuo de instrues e um posterior
retorno prxima instruo do programa (o retorno vai ocorrer apenas para certos tipos de interrupo), apresenta duas
diferenas bsicas em relao s subrotinas:

assncrona, ou seja, pode ocorrer durante a execuo de qualquer instruo do programa, j que no comandada pelo
prprio programa em execuo;

qualquer instruo do repertrio da mquina e todo tipo de recurso compartilhvel podem ser utilizados aps o desvio e
antes do retorno, dependendo do tipo de interrupo e de que rotina vai ser executada.

Um sinal de interrupo muito comumente recebido por um programa em execuo em ambientes multiprogramados (em que
mais de um programa est em execuo ao mesmo tempo) aquele que leva liberao da CPU para outro programa em
execuo, via chaveamento de contexto. O recurso compartilhado aqui a CPU como um todo, j que um nico programa pode
estar usando a CPU a cada instante. Sendo assim, h troca de posse da CPU entre programas durante a execuo de suas

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

instrues. Veja o exemplo a seguir, mostrando uma seqncia de ocupao da CPU quando 2 programas em execuo (A e B)
a compartilham.

...

...
instruo do programa A
instruo do programa B
instruo para chaveamento de contexto

Sendo assim, indique quem deve realizar o chaveamento de contexto, como ele trabalha para garantir a coerncia dos dados dos
programas envolvidos e como que o mecanismo de interrupo implementa o assincronismo (sob o ponto de vista dos
programas em execuo) do chaveamento de contexto.

Captulo VI: Tpicos Mais Importantes


Sinais de Controle do Gerador de Seqncia de Interrupo:
MAPEAMENTO INTERNO
PUSH PC
PUSH PSW
JUMP RS

MAPEAMENTO EXTERNO
PUSH PC
PUSH PSW
IN CONTRL
JUMP RS

POP PSW
POP PC
6

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

mapeamento entre linhas de interrupo e posies de memria: endereos de interrupo


listados no manual do processador.
a cada linha de interrupo est associada um rotina de servio. O programador da rotina de
servio deve instal-la fazendo uso do endereo de interrupo associado correspondente
linha de interrupo.
mais de um dispositivo ligado a uma dada linha de interrupo: mecanismo de polling
Rotina de Servio
RS:

IN STATUS1
Jcond RS1
IN STATUS2
Jcond RS2
...
IN STATUSn
Jcond RSn

organizao dos endereos de interrupo na memria, geradores de seqncia de


interrupo e instalao das rotinas de servio.

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

controle do atendimento de interrupes: flag de interrupo, mascaramento seletivo,


mascaramento por nvel de prioridade.
controle do atendimento de interrupes dentro de rotinas de servio.
prioridade no atendimento de interrupes.
excees internas.

Captulo VI: Exerccios


Questo 8: Defina chaveamento de contexto e explique sua importncia em sistemas
operacionais multiusurios.
Resp: O chaveamento de contexto a troca de posse da UCP entre dois programas em
execuo (denominados processos). Em ambientes multiprogramados, particularmente em
ambientes multiusurios, fundamental que ocorra a alternncia de posse da UCP por parte
de programas em execuo, j que desejvel que todos os programas progridam em sua
execuo sem que nenhum deles fique um longo tempo sem a posse da UCP, viabilizando assim
o paralelismo aparente. Um nico programa pode estar de posse da UCP a cada instante, mas
a quantidade de ciclos de mquina que podem ser executados por segundo elevadssima, de
8

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

modo que cada programa em execuo pode retomar a posse da UCP dezenas e at centenas
(ou mais!) de vezes a cada segundo. Sendo assim, mesmo que um usurio esteja interagindo
intensamente com um programa em execuo (por exemplo, fornecendo e recebendo dados
atravs de interfaces de entrada/sada), este usurio dificilmente ser capaz de perceber
qualquer uma das interrupes de execuo por que seu programa passou. fundamental
compreender que o recurso compartilhado aqui a UCP como um todo, sendo que parte do
tempo de processamento da UCP consumido com a preservao e restaurao de contedo
de todos os registradores compartilhveis, etapa indispensvel durante a troca de posse da
UCP. Isto implica que chaveamento de contexto consome tempo de UCP, durante o qual
nenhum programa progride em sua execuo. Logo, a quantidade de chaveamentos de contexto
no pode ser excessiva, para garantir que o tempo de uso da UCP por parte dos programas
seja bem maior que o tempo gasto para chavear de contexto. Muitos processadores possuem
vrios conjuntos de espelhos internos de todos os seus registradores, permitindo que a
preservao do estado do processador possa ser feito rapidamente.

...

P1

CC

P2

CC

P3

CC

...
9

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 9:
Quais so as diferenas e semelhanas bsicas entre o mecanismo de atendimento e
retorno de interrupo e o de chamada e retorno de subrotina?
Resp:
Atendimento de interrupo e chamada de uma subrotina tm em comum:
preservao do contedo do PC e desvio de execuo para uma seqncia de instrues S
diferente da seqncia P da qual a instruo corrente faz parte;
retorno prxima instruo na seqncia P, pela restaurao do contedo do PC aps a
execuo da seqncia S.
todos os registradores compartilhados devem ter seu contedo preservado. Por exemplo, no
caso do atendimento de uma interrupo, se o gerador de seqncia de interrupo salvar e
posteriormente restaurar somente o contedo do Registrador de Estado (PSW), ento o
programador da rotina de servio deve se ocupar tambm da preservao e posterior
restaurao de todos os registradores que estaro disponveis para uso na rotina de servio.
Atendimento de interrupo e chamada de uma subrotina diferem nos seguintes aspectos
bsicos:
10

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

uma interrupo normalmente iniciada por um sinal externo ( assncrona), enquanto a


chamada de subrotina iniciada por uma instruo do programa ( sncrona);
numa interrupo, o endereo de desvio determinado por hardware (Gerador de
Seqncia de Interrupo), enquanto que numa chamada de subrotina o endereo
especificado no campo de endereo da instruo;
durante o salto em uma interrupo, alm do endereo de retorno (contedo do PC),
tambm salvo o contedo do PSW.
Questo 10: Como viabilizar a execuo de rotinas de servio crticas em arquiteturas que
controlam o atendimento de interrupo via flag de interrupo? Nesta mesma
arquitetura, como permitir a interrupo seletiva de rotinas de servio?
Resp:
Uma rotina de servio crtica aquela que no pode ser interrompida uma vez iniciada sua
execuo. Sendo assim, basta no executar a instruo EI dentro da rotina de servio crtica,
pois o desvio automaticamente realiza a desabilitao de interrupes em arquiteturas com
flag de interrupo. Com flag de interrupo, no possvel permitir a interrupo seletiva,
pois as linhas de interrupo vo estar todas habilitadas ou todas desabilitadas.
11

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 11: Seja uma arquitetura em que as microoperaes ativadas pelo Gerador de
Seqncia de Interrupo equivalem quelas associadas execuo das instrues
PUSH PC
PUSH PSW
MOV ENDi, PSW
JUMP (ENDi+1).
(a)

Como feito o acesso rotina de servio de interrupo?

Resp: utilizado vetor de interrupo com definio de estado. O contedo do endereo ENDi
corresponde ao estado inicial da rotina de servio associada linha i, enquanto que o
contedo do endereo ENDi+1 corresponde ao endereo da rotina de servio para a linha i.
(b)

Explique a funo da instruo MOV ENDi, PSW.

Resp:
Como o contedo do endereo ENDi corresponde ao estado inicial da rotina de servio
associada linha i, a instruo acima tem a funo de atualizar o PSW com este estado,
imediatamente antes do desvio para execuo da rotina de servio.

12

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 12: Com base na figura 6.3 e supondo a ocorrncia de uma interrupo
habilitada, explique como se d a passagem da execuo de um programa para a execuo
de uma rotina de servio e posterior retorno ao programa.
Resp: pg. 156

Questo 13: Quais so as duas situaes que levam necessidade de definio de


prioridade no atendimento de interrupes?
Resp:

1. mais de um dispositivo associado a uma mesma linha de interrupo;


2. mais de uma linha de interrupo habilitada.

Questo 14: Considerando a existncia de 4 linhas de interrupo e levando-se em conta


apenas o tempo de identificao de interrupo (nmero de testes de linhas de
interrupo), qual dos dois mecanismos de prioridade por varredura tem um melhor
desempenho nos seguintes casos:
seqncia de interrupo:

L4, L3, L2, L1


L1, L2, L3, L4
13

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Resp:
L4, L3, L2, L1: a partir da primeira linha.
L1, L2, L3, L4: a partir da ltima linha em que ocorreu o atendimento a um sinal de
interrupo.

Questo 15: Considere uma arquitetura com interrupo vetorizada. Suponha que o
mapeamento gere os endereos 70, 71 e 72 para as 3 interrupes existentes. Admita
tambm a existncia de 3 rotinas de servio instaladas nas posies de memria 100, 200 e
300 para o atendimento destas interrupes.
a) considerando que o mecanismo de interrupo controlado por flag de interrupo, e
que nenhuma rotina de servio deve ser interrompida, mostre contedos relevantes no
mapa de memria e funes do gerador de seqncia de interrupo.
Resp:
O gerador de seqncia de interrupo realiza microoperaes equivalentes s
microoperaes da fase de execuo das seguinte instrues:
PUSH PC

PUSH PSW

DI

JUMP (ENDi)
14

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Mapa de Memria
70
71
72

100
200
300

100

Rotina de servio 1
...
EI
RTI

Rotina de servio 2

200
...
EI
RTI

Rotina de servio 3

300
...
EI
RTI

15

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

b) mostre a instalao das rotinas de servio.


Resp:
ORG 70
ADR RS1
ADR RS2
ADR RS3

ORG 100
RS1:

ORG 300
Instrues da

RS3:

Rotina de Servio 1
RTI

Instrues da
Rotina de Servio 3

RTI

ORG 200
RS2:

Instrues da
Rotina de Servio 2

RTI
16

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

c) considerando agora que o controlador de interrupo externo, que o mascaramento


feito por mscara de interrupo, e que cada rotina de servio pode ser interrompida
por sinais das duas outras interrupes, mas no dela mesma, faa:
defina os bits de mscara de cada rotina;
complete o mapa de memria com as instrues e operaes necessrias para o
funcionamento desejado.
Resp:
Rotina:

Mscara

Bits para a mscara da Rotina 1: 110


Bits para a mscara da Rotina 2: 101
Bits para a mscara da Rotina 3: 011

Hiptese: RMASK o endereo do registrador de mscara do controlador de interrupo


externo.
17

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

100

Mapa de Memria
MOV #110, RMASK

Rotina de servio 1

restaura mscara
RTI

200

MOV #101, RMASK

Rotina de servio 2

restaura mscara
RTI

300

MOV #011, RMASK

Rotina de servio 3

restaura mscara
RTI

XXXX

MOV #111, RMASK

Programa Principal

18

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

d) considerando que a rotina de servio 1 seja crtica e no possa ser interrompida, e que
a rotina de servio 2 seja prioritria em relao rotina de servio 3, no podendo ser
interrompida por esta, qual o mecanismo de mascaramento de interrupo mais
apropriado para este caso?
Resp:
Mascaramento por nvel de prioridade, pois existe uma prioridade entre as interrupes, no
havendo necessidade de mascaramento seletivo. A prioridade : RS1 > RS2 > RS3.

Questo 16: Suponha que voc recebeu a incumbncia de realizar uma extenso junto a
um projeto de um microcontrolador, a ser utilizado em um processo industrial que realiza
o controle de temperatura de uma caldeira. A operao adicional a ser includa se refere
ativao de um sinal luminoso em um painel caso a temperatura ultrapasse um
determinado valor. Voc dispe dos seguintes elementos:
um dispositivo que contm um sensor de temperatura e um boto de ajuste. Este
dispositivo emite um sinal DC (compatvel com as especificaes de entrada do

19

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

microcontrolador) caso a temperatura ultrapasse um valor que pode ser ajustado


diretamente atravs da manipulao do boto disponvel.
o pino 19 do microcontrolador, reservado para o atendimento de interrupo, est
disponvel.
64K de memria RAM para o microcontrolador.
o manual do microcontrolador, o qual apresenta a seguinte tabela entre pino de
interrupo e endereos de memria:
Pino

Endereo

16

$0200

17

$0201

18

$0202

19

$0203

o microcontrolador trabalha com vetor de interrupo.


a instalao de rotinas de servio para atendimento de interrupo deve ocupar os
endereos de memria entre $FF00 e $FF3F.
20

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

os endereos entre $FF00 e $FF30 j esto ocupados com instrues de outras rotinas
de servio.
a rotina de servio para a ativao de um sinal luminoso em um painel ocupa 15
palavras de memria e foi fornecida a voc pelo seu colega de trabalho.
Tarefa: Apresente todos os passos necessrios para implementar com sucesso a extenso
do projeto.
Resp: (discusso em aula)

Captulo VII
Questo 17: Distinga E/S isolada de E/S mapeada em memria.
Resp:
Pginas 184 a 188 do livro-texto.

Questo 18: Em uma interface de E/S:


(a)

explique a funo do Registrador de Estado.


21

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Resp:
Informa o estado da transferncia de E/S, fundamental para a implementao de E/S
condicional, e o estado do dispositivo. Para a UCP, trata-se de um registrador apenas de
leitura. Para o dispositivo, apenas de escrita.
(b)

explique a funo do Registrador de Dados.

Resp:
Armazenagem temporria de dados. Em uma operao de entrada, este registrador
carregado pelo dispositivo e lido pela UCP. Em uma operao de sada, ele carregado pela
UCP e lido pelo dispositivo.
(c)explique a funo do Registrador de Controle.
Resp:
Usado pela UCP para definir o modo de operao da interface. Para a UCP, trata-se de um
registrador apenas de escrita. Para o dispositivo, apenas de leitura.

Questo 19: Por que o acesso ao registrador de estado de uma interface de leitura e ao
registrador de controle de escrita?
22

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Resp:
Pelas funcionalidades apresentadas na questo anterior.

Questo 20: Como se faz uma transferncia de dados entre UCP e uma interface sem
perda de informao?
Resp: Pginas 189 e 190 do livro-texto.

Questo 21: Como se faz uma transferncia de dados entre dispositivos (por exemplo,
interface e perifrico) que operam em bases de tempo distintas?
Resp:
Dois procedimentos muito utilizados so aquele que recorre ao sinal de strobe e aquele que
emprega o mecanismo de handshaking. Somente o mecanismo de handshaking, que envolve
troca de informao entre as duas partes, permite uma maior confiabilidade de comunicao.
As figuras a seguir ilustram a seqncia de operaes associadas a cada caso, sendo que a
transmisso pode ser ativada tanto pela fonte como pelo destino. No caso do sinal de strobe, h
sensibilidade borda de subida.
23

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp
Dados

Observao: Strobe um
sinal

binrio

FONTE

de

Strobe

DESTINO

comunicao, enquanto
que

Dados

um

barramento com uma ou


mais

linhas

informao

de

(as

Dados

Strobe

quais

podem estar em 0 ou 1).

Leitura dos Dados

Portanto, a indicao de
que Dados foi de 0 para
1 uma notificao de
que h dados vlidos
Dados

(informao) no barramento.

De

FONTE

Strobe

DESTINO

forma

equivalente, Leitura dos


Dados

apenas

um

Dados

indicador do momento
em que a leitura do

Strobe

barramento de Dados foi


realizada. Logo, apenas

Leitura dos Dados

Strobe um sinal fsico.

24

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Dados
Dados Vlidos

Observao: Vale a
mesma

FONTE

explicao

Dados Aceitos

DESTINO

para Dados, ou seja, a


notao

binria
Dados

apenas est indicando


quando

dados

Dados Vlidos

vlidos no barramento.
J

Dados

Dados
Pronto

Vlidos,

Aceitos
para

Dados Aceitos

Dados

so sinais binrios de
comunicao.

As

Dados
Dados Vlidos

FONTE

linhas verticais indicam

um

Pronto para Dados

DESTINO

possvel

momento de leitura.
Pronto para Dados

Dados
Dados Vlidos

25

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 22: Na existncia de DMA, como a UCP e o controlador DMA podem


compartilhar barramentos? Quais so as vantagens e desvantagens de cada modo de
compartilhamento?
Resp:
Burst ou rajada, roubo de ciclo e DMA transparente (ver pgs. 201 e 202 do livro texto).
rajada: faz com que a transferncia DMA seja rpida, pois o controlador DMA tem uso
exclusivo dos barramentos assim que a transferncia tem incio. Neste caso, durante todo o
tempo da transferncia a UCP no tem acesso aos barramentos.
roubo de ciclo: um caso intermedirio.
DMA transparente: a UCP tem sempre acesso aos barramentos, quando necessrio. a
situao mais desejada em ambientes multiusurios, em que h muita concorrncia pela
UCP, mas cria-se a necessidade de deteco de ciclos de mquina da UCP que no iro
utilizar o barramento, o que pode ser de difcil implementao prtica.

Questo 23: Explique como feita a transferncia de dados via DMA, incluindo (em sua
explicao) todos os registradores de interface necessrios.
26

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Resp:
A UCP inicia a transferncia de/para posies contguas de memria setando os bits
correspondentes do registrador de controle, fornecendo o endereo inicial (EI) e o tamanho do
bloco a ser transferido (TB). O controlador DMA, a cada transferncia, incrementa EI e
decrementa TB.

Questo 24: O que um bit de paridade?


Resp: Em transferncias de dados em que existe alguma probabilidade no desprezvel de
ocorrncia de erros na transmisso, sua deteco pode ser realizada pela verificao da
paridade da informao transmitida (nmero par de bits 1). O bit de paridade introduz assim
uma redundncia de informao, de modo que possvel detectar qualquer mudana de 1 bit a
cada caractere transmitido.

Questo 25: No caso de comunicao interface/dispositivo, distinga os modos de


transferncia serial assncrona e sncrona.
Resp: Pginas. 198-200 do livro-texto.
27

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Captulo VIII
Questo 26: Seja 11010010 o contedo de um registrador de 8 bits. O que este cdigo
binrio representa, considerando que ele :
(a)

uma representao binria sem sinal;

21 + 24 +26 +27 = 2 + 16 + 64 + 128 = 21010


(b)

uma representao binria com sinal e magnitude;

(21 + 24 +26) = (2 + 16 + 64) = 8210


(c)

uma representao em complemento de 2;

complemento(11010010 00000001) = complemento(11010001)


= (00101110) = (21 + 22 +23 +25) = (2 + 4 + 8 + 32) = 4610
(d)

um cdigo hexadecimal;

D2H
(e)

um cdigo octal;

3228
28

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

(f) um cdigo BCD;


(g)

(no existe cdigo BCD para 11012)

uma representao em ponto fixo, com sinal, 4 bits para a parte inteira, 3 bits para a

parte fracionria e fator de escala 21;

20,510
(h)

um cdigo ASCII (ignore o bit mais significativo);

R
(i) uma representao em ponto flutuante normalizado, com o primeiro bit sendo o sinal,
os prximos 4 referentes mantissa e os ltimos 3 ao expoente.

2,510
(j) uma representao em ponto flutuante com bit escondido, com o primeiro bit sendo o
sinal, os prximos 4 referentes mantissa e os ltimos 3 ao expoente.

3,2510

29

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 27: Explicite todos os nmeros que podem ser representados exatamente
considerando a representao numrica de ponto flutuante normalizado com mantissa de
4 bits (codificada em sinal+magnitude) e expoente de 2 bits (codificado em complemento
de 2), na forma:
sinal magnitude expoente

Expoente: 01: +1; 00: 0; 11: 1; 10: 2


Magnitude: 100: 21; 101: 21+23; 110: 21+22; 111: 21+22+23

1,75; 1,50; 1,25; 1,00; 0,875; 0,750; 0,625; 0,500; 0,4375; 0,3750; 0,3125;
0,2500; 0,21875; 0,18750; 0,15625; 0,12500; 0,12500; 0,15625; 0,18750; 0,21875;
0,2500; 0,3125; 0,3750; 0,4375; 0,500; 0,625; 0,750; 0,875; 1,00; 1,25; 1,50; 1,75.

Questo 28: Explicite todos os nmeros que podem ser representados exatamente
considerando a representao numrica de ponto flutuante normalizado com mantissa de
30

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

3 bits (codificada em sinal+magnitude) e expoente de 3 bits (codificado em complemento


de 2), na forma:
mantissa

Representao:

expoente

Combinaes possveis para a mantissa:


0,10
0,11
0,5
0,75
Combinaes possveis para o expoente
000
0

001
1

010
2

011
3

1,10
-0.5
111
-1

1,11
-0,75
110
-2

101
-3

100
-4

Nmeros representveis:
-6 | -4 | -3 | -2 | -1,5 | -1 | -0,75 | -0,5 | -0,375 | -0,25 |
-0,1875 | -0,125 | -0,09375 | -0,0625 | -0,046875 |
-0,03125 | 0,03125 | 0,046875 | 0,0625 | 0,09375 |
0,125 | 0,1875 | 0,25 | 0,375 | 0,5 | 0,75 | 1 | 1,5 | 2 | 3 | 4 | 6
31

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 29: Represente os nmeros a seguir utilizando ponto fixo, com fator de escala 101,
dois dgitos para a parte fracionria e cinco dgitos no total: 432,4810; 54321,510; 0,043210.
Comente cada uma das representaes obtidas em relao ao efeito produzido sobre os
nmeros iniciais.
043,24 (perda de preciso por truncamento)
432,15 (overflow)
000,00 (underflow, perda de preciso por truncamento)
Questo 30: Seja um computador com palavra de 16 bits com a qual so representados
nmeros reais usando a representao em ponto flutuante normalizado, com um bit de
sinal, mantissa de 11 bits e expoente de 4 bits. A base numrica utilizada a binria, no
h bit escondido e o expoente representado em complemento de 2. Represente os
nmeros 66,2510 e 4,62510.
66,2510 = 64 + 2 + 0,25 = 26 + 21 + 22 = (21 + 26 + 29)*27
Representao: 0 10000100100 0111
4,62510 = 4 + 0,5 + 0,125 = 22 + 21 + 23 = (21 + 24 + 26)*23
Representao: 0 10010100000 0011
32

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 31: A adio (ou subtrao) em ponto flutuante se faz do mesmo modo que em
ponto fixo?
No. Em representao que utiliza ponto flutuante, no possvel realizar a adio (ou
subtrao) com exponentes diferentes. Os seguintes passos devem ser adotados:
1. identificar o nmero com o menor expoente;
2. fazer o menor expoente igual ao maior expoente pela diviso da mantissa pelo mesmo fator
utilizado para aumentar o expoente;
3. adicionar (ou subtrair) as mantissas;
4. se necessrio, normalizar o resultado.

Questo 32: Apresente todos os passos necessrios para realizar a adio dos nmeros
66,2510 e 4,62510, representados conforme as especificaes da questo 30.
o nmero 4,62510 tem o menor expoente;
igualando ao maior expoente resulta:
4,62510 = 4 + 0,5 + 0,125 = 22 + 21 + 23 = (25 + 28 + 210)*27
Representao: 0 00001001010 0111
33

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

adicionando: 0 10000100100 0111


0 00001001010 0111 +
0 10001101110 0111
O resultado fica: (21 + 25 + 26+ 28 + 29 + 210)*27 = 70,87510
no h necessidade de normalizar o resultado.

Questo 33: Dado um inteiro decimal arbitrrio contendo n dgitos, qual deve ser o
nmero mnimo de bits (m) de sua representao em notao binria?

2m 1 10n 1 2m 10n
log102m n m.log102 n
0,30103.m n m 3,3219.n

Questo 34: Por que a seqncia de passos a seguir pode no ter fim quando
implementada em um computador?
34

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Passo1) soma = 0;
Passo2) soma = soma + 0,1;
Passo3) enquanto soma1, v para o Passo2; seno, v para o Passo 4;
Passo4) FIM.
Como a representao binria de 0,1 no pode ser exata, a soma de 10 representaes binrias
de 0,1 vai produzir um valor diferente de 1,0, ao menos para mquinas que trabalham com
maior preciso.

Questo 35: Por que a representao octal bem menos utilizada que a representao
hexadecimal?
Porque as mquinas so projetadas para operar os bits individualmente, ou em grupos de 4, 8,
16, 32 ou 64 bits. O nmero de bits agrupados no so mltiplos de 3, mas so todos mltiplos
de 4, prejudicando a representao octal ao mesmo tempo em que favorece a representao
hexadecimal.
Questo 36: Existe um algoritmo para converso de nmeros inteiros positivos em
representao decimal para representao binria?
35

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Sim. O algoritmo dado pela diviso contnua do nmero por 2, tomando o resto de cada
diviso como os bits da representao binria, s que em ordem invertida.
Exemplo: converso de 15710 para representao binria:
157 2 = 78
R=1
78 2 = 39
R=0
39 2 = 19
R=1
19 2 = 9
R=1
92=4 R=1
42=2 R=0
22=1 R=0
12=0 R=1
Resultado: 15710 = 100111012
Questo 37: Existe um algoritmo para converso de nmeros fracionrios positivos em
representao decimal para representao binria?
Sim. O algoritmo dado pelo produto contnuo do nmero por 2, considerando sempre apenas
a parte fracionria (at que esta se anule). A parte inteira tomada como os bits da
representao binria. Exemplo:
36

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Converso de 0,310 para representao binria:


0,3 2 = 0,6
0,6 2 = 1,2
0,2 2 = 0,4
0,4 2 = 0,8
0,8 2 = 1,6
0,6 2 = 1,2

R=0
R=1
R=0
R=0
R=1
R=1

...
Resultado: 0,310 = 0,010011...2

Questo 38: Quais so as vantagens e desvantagens do cdigo BCD?


O cdigo BCD (Binary-Coded Decimal) codifica os dgitos decimais individuais em grupos de
4 bits. Esta codificao pode ser feita de vrias formas, sendo que a forma natural apresentada
no livro-texto.

37

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Um exemplo de adio utilizando o cdigo BCD apresentado a seguir, enfatizando o


tratamento agrupado dos bits:
1 9 4 2

0001

1001

0100

0010

+ 2 3 7 9

0010

0011

0111

1001

4 3 2 1

0100

0011

0010

0001

vantagem:
corresponde a uma forma de representao direta, sendo encontrado em aplicaes que
requerem pouca armazenagem, como em calculadoras de bolso e relgios digitais.
desvantagens:
requer hardware mais complexo para implementar as operaes aritmticas (j foi mais
significativo)
conduz a um uso ineficiente de memria, usando 20% a mais de bits do que o necessrio para
representar um nmero decimal (4 bits contra 3,3219)

38

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 39: Existem outras formas de representao numrica binria alm da posicional?
Sim. A posicional denominada representao pura ou natural. Outras representaes importantes so
aquelas que procuram manter constante e igual a 1 a distncia de Hamming entre as representaes
binrias de dois nmeros inteiros decimais consecutivos. O mais conhecido o cdigo de Gray,
ilustrado a seguir para representao em 4 bits.
Valor decimal

Binrio natural

Cdigo de Gray

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000

39

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Questo 40: Por que existem tantas variedades de formatos para representao em ponto
flutuante?
A variedade de formatos uma conseqncia da necessidade de definio de 5 requisitos
bsicos independentes:
1. o nmero total de bits a ser utilizado;
2. a representao da mantissa (complemento de 2, sinal+magnitude, etc.);
3. a representao do expoente (complemento de 2, sinal+magnitude, polarizao, etc.);
4. a proporo de bits reservada para mantissa e expoente;
5. a localizao da mantissa e do expoente.

Representao no-numrica (cdigo ASCII)


ASCII: American Standard Code for Information Interchange (7 bits)
para obter o cdigo binrio de um caractere, tome os 3 bits mais significativos da coluna em
que ele aparece e os 4 bits menos significativos da linha em que ele aparece. Exemplo: o
cdigo ASCII para W 10101112 ou 57H.

40

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Cdigo binrio ASCII (ISO - 7 bits)


b6b5b4
b3b2b1b0

000

001

010

011

100

101

110

111

0000

NUL

DLC

SP

0001

SOH

DC1

0010

STX

DC2

0011

ETX

DC3

0100

EOT

DC4

0101

ENQ

NAK

0110

ACK

SYN

&

0111

BEL

ETB

1000

BS

CAN

1001

HT

EM

1010

LF

SUB

1011

VT

ESC

1100

FF

FS

<

1101

CR

GS

1110

SO

RS

>

1111

SI

VS

DEL

Caracteres de controle

Caracteres imprimveis

41

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Captulo IX: Tpicos Mais Importantes


entrada do montador: sequncias de caracteres (programa assembly /cdigo fonte).
sada do montador: conjunto de palavras de mquina (bits) (cdigo objeto).
formato geral do programa com instrues assembly (at 4 campos):
[rotulo]

<operacao>

[<operando>]

[;comentario]

os campos indicados com [ ] podem ser opcionais, sendo que os campos so separados por
espaos ou tabulaes.
Pseudo-instrues
alm das instrues do processador, um programa assembly pode conter pseudo-instrues,
as quais, alm de instruir o montador, estabelecem a conexo entre referncias simblicas e
valores efetivamente referenciados.
END
EQU cria um nome simblico associado a um valor de um endereo:
DATA

EQU

$6000

PROGRAM

EQU

$4000
42

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

ORG estabelece a origem para o segmento seguinte de instrues ou dados:


ORG PROGRAM
MOVE.W $6000, D0
MOVE.W D0, $6002

DS.size

n reserva espao em memria para n variveis de tamanho size. precedida por

um rtulo que define um nome simblico para a varivel:


VALUE

DS.W 1

DC.size n reserva espao e define o contedo da memria com valor n.


LABEL

DC.W 1

Tarefas de um montador
dependem de caractersticas especficas do processador e da sintaxe da linguagem simblica,
alm do tipo de carregador.
Funes bsicas:

43

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

1. determinar o comprimento de cada instruo montador precisa conhecer quantos


operandos so requeridos p/ cada instruo + modos de endereamento desses operandos.
2. substituir mnemnicos de instrues e modos de endereamento dos operandos pelos
equivalentes binrios.
3. resolver e traduzir as expresses e os literais no campo de operandos para representaes
binrias.
4. determinar posies de memria, relativas ao programa, para os endereos simblicos
(rtulos).
5. substituir todas as referncias a um endereo simblico pelo endereo binrio (efetivo)
correspondente.
em algumas situaes programa completo est dividido em diversos segmentos a serem
combinados posteriormente.
6. marcar todas as referncias simblicas no resolvidas
7. marcar os endereos simblicos externamente referenciveis

44

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

portanto, se existirem referncias simblicas cruzadas entre segmentos, no papel do


montador resolver essas referncias, mas ele deve detect-las e assinal-las para posterior
resoluo.
cada smbolo referencivel externamente marcado e colocado disposio para outros
segmentos.
Tabelas de instruo estticas
descrevem para cada instruo ou pseudo-instruo o cdigo de mquina e quantas palavras
de memria so necessrias para armazen-la.
Tabela de Instrues de Mquina (TIM): contm a informao necessria p/ permitir
traduo de um mnemnico para o cdigo de mquina correspondente, alm de rotinas para
tratamento de operandos. Portanto, apresenta 2 campos obrigatrios: mnemnico e sequncia
de bits associada (C.O.). Se o processador tem instrues de comprimento varivel, o
comprimento da instruo tambm deve estar presente.
Tabela de Pseudo-Instrues (TPI): mantm informao semelhante TIM, porm voltada
para pseudo-instrues. No h cdigo associado, mas pode haver um comprimento
associado.
45

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

P rogram a
Assem bly

T IM
M ontador
TPI

C digo de
M quina

passo 2

D RL

passo 1
ST

D SE

Tabelas Dinmicas
Tabela de smbolos (TS): associa os smbolos com os cdigos binrios correspondentes
(endereos).
Dicionrio de Smbolos Externos (DSE): contm os smbolos que podem ser referenciados
externamente ou so definidos externamente.
Diretrio para Relocao e Ligao (DRL): armazena todos os endereos relocveis.
46

EA869 Prof. Von Zuben


DCA/FEEC/Unicamp

Captulo IX: Exerccios


Questo 41: No processo de traduo de um programa escrito em linguagem de
montagem (gerao do cdigo binrio correspondente), responda:
a) qual a funo da Tabela de Instrues de Mquina?
b) qual a funo da Tabela de Pseudo-instrues?
c) qual a funo da Tabela de Smbolos?

Questo 42: Levante as razes pelas quais existe pelo menos uma linguagem Assembly
para cada processador.

47