Está en la página 1de 187

UNIVERSIDADE DE SO PAULO

E S C O LA POL1 CN I C
DEPARTAMENTO DE ENGENHARIA DE ELETRICIDADE
LBORAT0RIO DE SISTEMAS DIGITAIS

MONTADOR DO "PATINHO FEIO"

Antonio Marcos de gurra Massola


J o ao Jos Neto
Mosh e Ban
Em memria de
Lais Costa Orten
I , l

Vi) ICE

Assuat Pjyg i n a

CAPTULO 1 - INTRODUO 1 , 1

CAPTULO 9 - RIIMT-ilC BINRIA E HEXADECIMAL 2,1

Bases de Numer ae ao 2 1

Bases mais empregadas em computao 2 . 2

C o nv er s o e ntre a s b ases dois , de* e


dezesseis 2,3
Soma de numeros binrios positivos 2 . 6

Representao de numeros negativos 2.8


Aritmtica ao Patinho Feio 2 . 1

Blocos e Diagramas Logic os 2,15

CAPTULO 3 - DESCRIO SUCINTA DO MINICOMPUTADOR


"PATINHO FEIO" 3 1

Memria 3.1
Registrador t -
3.
Tipos de instrues existentes 3 .

Execuo de uma instruo 3.6

CAPTULO 4 - PRINCPIOS DO MONTADOR DO


PATINHO FEIO 4 1

Conceito de Montador 4,1


Elementos da linguagem de montador 4.2
Conveno para distinguir endereos
de conte d o s Cs

4 6

Formato do progr ama -fonte 4 6

Formato de uma linha 4 .

Pseudo 'instrues 4,9


Tipos de de svios pulos e sal to 4,13
I . 2

A ssuato Pagina

CAPTULO 5 - INSTRUES DE REFERNCIA MEMRIA


E ENDEREAMENTO NO PATINHO PEIO 5.1
M o d o s d e e n d e r e atn e nto 5.1
Operandos de instrues de referen
cia a meiaor a 5.5
Instruo IND (indireto) 5.8
Instrues de referncia a memria 5,8
PLA 5.g
PLAX 5,9
ARM 5 . 9

ARMX 5.10
CAR 5.io
CARX 5.11
.SOM 5.11
SOMX 5.ii
PLN S.i
PE AZ 5.12
SOS 5.13
PUG 5.17

CAPTULO 6 - INSTRUES IMEDIATAS 6.1


XQR 6 ,

NAND 6 .

SOMI 6.3
CARI 6.3

CAPTULO 7 - GRUPO 1 DE INSTRUES CURTAS 7.1


LIMPO j,
UM, CMP1, CMP 2 7.1
LIM, INC 7.2
NEC. LIMP1 7,3

CAPTULO 8 ~ GRUPO 2 DE INSTRUES CURTAS 8.1


ST j
STH, SV, SVM 8.1
i . Jt

Assunto P cl g X 11. 3
,

CAPTULO 9 ~ INSTRUES DE PAINEL


I a stru o e s 9 .

II ti 1 i z aa o 9 .

CAPTULO 10 - INSTRUES DE DESLOCAMENTO 10 'I


X

Descrio 10.1
Quadro de instrues 10.2
Ejcemp los 10.3

CAPTULO 11 - INTERRUPO E GRUPO 3 DE INSTRUES


CURTAS
Conceito de interrupo 11.1
Nveis de interrupo 11.4
Grupo 3 de Instrues Curtas 11 .

PUL f TRE, IHIB 1 1 .

P E RM 1 1 .

ESP , PARE, TRI s XND 11 . 7

Exemplo de programa com interrupo 11.8

CAPTULO 12 - MTODOS DE ENTRADA E SADA 12.1


Equipamentos perifricos; regras
b iscas de E/S 12.1
Estrutura das interfaces 12.3
Mtodo waitf or-f lag* 1

12,5
Mtodo de interrupo 12,8
Funes dos " lip-flops" de E/S 12.10
Interrupes simultneas de vrios
perifricos 12.12
Esquemas dos " lip-f lops" de E/S e

das interrupes 12.14


Assunto P ag na

CAPTULO i: - 1 S I RU E S D E E S 1 3 1

I ns tru ao FN C 1 3 * 1

I n s r ti ao SAL 13.2
Instruo ENTR 13,3
I p, s t r u a o SAI 13,3
Ex e m p 1 o s d e E/S 13.4

CAPTULO I - PROGRAMAS ABSOLUTOS E RELOCVEIS 14.1


Conceito de relocaao; exemplo 14.1
T po a de rotinas 14.
Tipos de variveis e endereos 14.9
Exemplo: rotina que calcula senos 14.14
Diviso da memria 14.18
Ligaa o de rotinas 14,19

CAPTULO l - PSEUDO -INSTRUES E OPERANDS DE


INSTRUES DE REFERNCIA MEMOS IA
NO MONTADOR RELOCVEL 15.1
Operandos de instrues de refe-
rncia I memria 15.1
Pseudo -instrues 15 .4
NOME SUBR, SEGM ,
ORG 15.5
EXT, ENT 15.6
COM 15.7
BEFC, DKFASC, DE FE 15.8
DEFI, BLOC 15,9
EQU, FIM 15.10

CAPTULO I 6 - OPERAO DO PATINHO FEIO PARA


MONTAGEM DE PROGRAMAS 16.1
L i n h a de C o n t r o 1 e passos ;
1 e 2

do montador 16.1
C o n t. role de 1 ist a s. e m i6 .
1 3

Formato das Sadas 16,4


T a b e la de Smbolos 16
L ist agem 1

Fita Ob j e to i 6

C ''
V& ci il 0X & b s o 1 u t o ;me ra o r

pto !: eg i da 16,11
Ias truoas de operao do Patinho
0. 2. O 1 6,12

2
Diagrama de Precedncias para Operandos de
Instrues d e S e erncia M em r a ,

I n stru o e s d o P ati n h o Feio .

Instrues de Referencia a Memria a. 2

Instrues de Entrada e Sada A. 3


I n s t r u oes de Deslocamento A ,

Inst r u oes I m e d i atas a 5

Grupo I de Instrues Curtas ,5


I rt struoes de P a inel A 6 ,

Grupo 2 de Instrues Curtas ,7


Grupo 3 de. Instrues Curtas ~
A, 8

Pseudo-instraoes do Montador A*

Diagrama Logico dos Pedidos de Interrupo A, II

Erros Detetados pelo Montador A, 13

Codigo ASCII a, . 1 7

Exemplo de Programa Absoluto A, 18

Exemplos de Programas Re3.oca.veis A, 23


I , ?

L I S TA DE I L l S TRAES

ssun to P Sg i, na

Calculo do eader e eieuvo na: ; truoe s de


r ene ia memria

Diagrama de preeedenc ias dos operando s das instru


oes de referencia a memria 5 , t

Interligao entre o Patinho Feio e seus equipamentos


de E/S 1 2 , 1

Fluxo dos dados na entrada e na sada 1 2 .

Entrada pelo mtodo "wa i t -f or-f lag" 12.6

Dois tipos de sada pelo mtodo " wai t -f or -f lag"

Entrada/Salda pelo mtodo de interrupo 12,13

H
F1 ip-f lops e registradores envolvidos nas opera-
es de E/S 12.15

Diagrama de interrupo no Patinho Feio 12,16

Diviso de um programa, grande em varias rotinas


retocveis 14.8

Esquema de diviso de urna rea comum em diferentes


rotinas reloclveis 14,13

locaao padrao de memria utilizada em rotinas


reloclveis 14.18

Esquema de- uma montagem: do progr ama-fonte fita


absoluta 16,2

Lis tag em ~ e x erap lo de u m p r o g r am a absoluto 16.7

Fita objeto absoluta correspondente ao programa


da pagina 16.7 16.9
1 - INTRODU O

O ante -projeto do minicomputador Patinho Feio nasceu


cieum curso de pos-graduaao dado pelo Professor Glen George
Langdon Jr * em 1972 A seguir, os engenheiros e estagirios do
. .

Laboratrio de Sistemas Digitais (PSD) da EPUSP terminaram o


projeto e montaram o Patinho Feio que dessa forma, se tornou ,

o primeiro computador projetado e construdo no Brasil

Os circuitos do Patinho Feio so totalmente consti-


tudos por circuitos integrados da famlia ITL ("transistor
transstor logic") , apresentando uma memria de ncleos de fer
ri te e tendo um ciclo de maquina de dois mierosegundos

0 Patinho Feio foi destinado


a pesquisas no LSD tan ,

to na area de programao (software") como dos circuitos ele-


trnicos ( "hardware")

Cuidou-se do desenvolvimento de um software que per


mtisse um uso mais eficiente do minicomputador ja que, de ,

incio so se podia programa- lo em linguagem de mquina manual ,

mente , atravs do seu painel . Em particular


uma , foi definida
linguagem de montador (assembly language") que associa a ca- ,

da instruo de maquina um mnemnico e um programa montador ,

("assembler") , cuja funo e traduzir programas escritos em


linguagem de montador para linguagem de mquina os quais , so
os assuntos tratados neste manual

Este manual foi escrito de forma a tratar cada t op


i

co de forma mais ou menos extensa, na suposio de que o lei-


t or te n h a t i do prev i a m e n t e apen as u m p equeno c on t. ato co ra a
rea de computao, pouco ou nenhum conhecimento de
e.
lngua
geris de baixo nvel, como um montador. Por causa disso tentou- ,

se fazer com que o manual fosse o mais auto-explicativo e inde


pendente possvel de outros textos. Naturalmente e impossvel
que uns texto seja comp 1 e t ta e n t e independente de outros; por is
so > rec o me ri d a~s e eonsu11 ar o u t r < >s textos, tais certo manuais de
oper aa. o do Patln h o F e i q e de s c us equipamentos perifricos (de
en.tr li d a / BS1S j ;
t ex tos s o b re ! n u aeros
i: binrios, etc

J? O % if t 'L
"
o n ra ta a e fo o p ara aprese t a r os con ei-

t os c om c 1ateza e para padronizar as no t ao es., com o objetivo


de tot na r o m a n uai r e a 1 ta e n t e ut i 1 . C oa tud o , c e rtamente mu i t a s
falhas subs i s t e de or ma que s ao b em r e. ceb idas q uais q uer su-
gestes e cr I ti c a de modo a melhorar o manual em futuras ed i-
coes

b s e rv aes

a) As informaes contidas neste manual sao as melhores que se


pode obter na poca em que o manual foi escrito (setembro de
1975) . Contudo, devido ao constante desenvolvimento de no-
vos projetos de "hardware* e "software** para o Patinho Feio
a 1 gu n s detalhe s podem ter sofrida a1 te raes ate a pr e sen te

b) Os programas e trechos de programa existentes no manual fo-


ram a colocados por estarem sintaticamente corretos mas
rtio representam necessariamente exemplos de boa tcnica de
programao
2

2 - ARITM TICA BINRIA E HEXAD E CIMA L


( C o m n um e r o s in t e i ros )

1 , Bases de Nu mera o

Utiliza-se , na vida diria, a base decimal de numera


ao para representar os numeros. Isto significa duas coisas;

a) existem dez- algarismos com os quais todos os nmeros so re


preaentados (pois a base de numeraao e dez), a saber; 0 , 1*

2 f
3 4 , 5 , 6 , 7 , 8 , 9 .

b) emprega-se uma nota ao pos icionai onde esti subentendido que,


quando um algarismo e deslocado de uma posio para a esquer-
da, seu valor multiplicado por dez. Por exemplo:
n i n
295 - 2 x 19 + 9 x 10 + 5 x 10

Generalizando, quando se escreve o nmero N -d d


n n-1
d,, d, dp (sem sinal), onde os d, (i= 0, 1, 2, , . . ,n) so os seus
algarismos (ou dgitos), est-se querendo dizer que; N - d x
S a" 1 2 1
10 + d x 10 + + d x 10 + d , x 10 + d x 10
n ,

i z i 0

Nada obriga a que se use apenas a base dez . Na verda-


de , qualquer base b (inteira) pode ser escolhida para
represen-
tai" um nmero, Para tanto
escolhem-se b smbolos distintos (os ,

algarismos da base) que representam os nmeros de zero a (b - 1).


Escrevendo-se agora n + L algarismos ad ac entes d d , . . d d e
n n-1 1 0
subentendida notao posicionai descrita acima tem-se
a o nume
ro N representado por essa notaao;

N * d
n
. b
1
+ d
n-
,
i
b d.,
10 b
1

+ d b

Inversamente pode-se provar que cada nmero N tem uma ,

nica representao, numa dada base b, que satisfaz as condices


mencionadas acima.

E x emp lo; Esco 1 h endo b 3, tm-se trs algarismos;


cemvenc i ona Imente u s a~ se 0 , 1 2. E stao tem-se:

3 2 ,1 ,0
(1202), * 1 x J
,,
+ 2x3 + 0 x 3 f 2 x .3 *
( 7 J3 ,
10
_

Pod e s a c o Wl f a r a percebe r a importanci 3. do q u


dito acima quando ci IS C 0 11 s i d e r a que os computador s mo d ermas
-* -

b a 1 h ata s e mp re, e 'U X t X ITi 3= a : i 4


f
'
-

la s Com a base doi *

2. Bases mais emp reg adas em coagutaao

Alem da base dez, que e de uso geral s empregam-se co-


mumente as seguintes bases;

a) base dois (binaria) - necessita dois algarismos distintos pa


ra representar os numeros zero e um. Por conveno utilizam-
se os smbolos 0 e 1. Um algarismo binrio tambm chamado
"bit" (do ingls "bxiary digit").

base dois i extrenanente vmportante pois, como j foi cita

do, os computadores so entendem sequncias de zeros e uns ,

que so usadas tanto para representar as instrues dadas a


maquina quanto numeros prop 'iamente ditos,

\
b) base oito (octal) ~ utiliza os algarismos de 0 a 7, No ser j/

aqui tratada com mais detalhes porque nao utilizada no e Pa


tinho Feio, embora o seja e ms vrios outros computadores.

base dezesseis (hexadecimal ) -


os dgitos hexadecimais so:
0, 1, 2 , 3 s
4 S 5 , 6, 7 , 8, 1 * A , B , C D t E , F ; usados para
representar os numeros de zero a quinze.
0
Exemplos (B) 10 16 4 1 1 1 f l. )
io 10

correspondncia fatte os valores binrios, decimais


A
e. hexadecimais e apresentada r.a tabela seguinte (note-se que so
necessrios quatro bits para representar todos os dgitos hexa-
decimais na base dois).
Dec tual Hexadec irnal B i nar io

0 0000
1
0001
9
0010
001
0 1 00

0101
6 D 01 1Q
7 0111
8 8 1000
9 e,
1001
10 1010
11 8 1011
&
1100
I) 1101
1 1110
15 1111

3 , Co rs v e rsa o da a usa e r o s . r e. as : es ooxs o.e z dezi


S0Xs

Conforme j 5 se deve ter percebido, surge frequente -


mente necessidade de converter nmeros escritos em uma ba.se
a
para outra. Para isso existem algoritmos gerais dos quais so ,

apresentados abaixo alguns asos particulares: ,

a) Converso para a base der de numeros escritos em outra base,


Basta escrever o nmero ia forma d - . + q c efetuar
as operaes indicadas.

Exemplos: 19) ( 10 i 1 1 1 1 0i' 001 ) para a base 10


1 10
1 ? + J , l - + 0.2" + 1 (3041),
10

29) (BEI)
i g
para .a base 10

1 1x16
1 + 1 4 v 1 6 + 1 (3041
>io
ma forma conveniente de fazer isso 5 dada nos diagramas
aha xo ;

C BEI ) , , d ar a a base 1
i 0 *

DB f

G T 3. 2, 3,. l\ < . (3041)

efcodo usados 1 M 16 + 14 = 19 0

4
190 i. o + i i04:

( 1 0 i 1 0) paia a b a s -e 1

DS 0
9'
or i g ib a {
;
i.

Mtodo usado: 1x2+0 2 x 2 + 1

11x2 + 0 * 22

h) Converso de nmeros escritos na base dez para uma outra ba


se Divide-se repetidamente o nmero dado pela base de des
tino ate que o quociente seja zero. Os restos obtidos so
a representao desejada, em ordem invertida. Ver os esque-

mas abaixo:

(3 041) bas e 1
10

resto de 3 04 1 : 16
r
"
,, res t o de 190 16
304 1
\ ..
r esto de 11:
3 041 : 1 6 - > 1 9 0 14*
V '

's
r
, 1

- n - ,
*

V \
190 : 16 J-
L X L X j 4 1

\ / v'"
..

-
k f J
11 : 16 -^s*-
0 (I El ) i c
i O
o

(3041) '
, base 2
1

3041
15 24 0 \
7 60 0 \\
3 80 A
U
\ \ \
, \ \ \
190 o\\\\
95 \\\Y\
4 7
fi *%
1 %

w
\ \ \ \
\ \ \

s
VX \\ \ \ \ \
\ V
\ \ \
l. 3
\\\\N\\\
11 i
\\ \\\\ x

n
i\\W\v \ \ x s ^

l.

1
\\\ \ \ \\10^ X \
(1 o 1 1 1 1 0 0
o

re as bases dois e d e 2lesse . s

d ois para a base de z e seis . Basta agrupar Os


b in x os
partir da di de quatro em quatro (a
reita) e substitu-los pe lo respectivo dgito hexadec
mal conforme a tabela apresentada mais atris (item 2
5

c) ,

Exeap 1 o

(1011110101) para base 16


zeros
a d icionadosf"
0 1 1 1

X ~T~
\
+ je"
(2 B5)
1

C2) Da base dezesseis para a base dois. Basta substituir c


da dgito hexadecimal pelo seu cdigo de quatro bits.

Exemplo
7

V *" ' )
i
*
]p si IT rX D S
t ! \ *-

/ 1 \

f f \
(0010 11 u 0101

Obs.i 19) Para a base oito, coroo : ac i 1 p er cebe r o tae


,

todo e ititeir am< a na ! ngo, dividindo-se


nu m e r o b n r i o e g r u p os de trSs b tg

29 ) Pode-se agora notar porque so tio usadas as


bases o i to e dezesseis em e oaip u t a a o e1as
:

permteiri dividir por trs (pois 8 2^) e por


q ui o (pois 16 * 2 respect ivaiaente
j ,
, o
c o is p i i men t o
em aigari. stios do nunieto escrito
na base dois, que costuma ser inconveniente-
mente longo,

jv,s Est-se dando mais nfase a base hexadecimal


porque no Patinho Feio os nume r o s tem ou oi-
to ou doze bits de comprimento, podendo
en-
to,
fiar rep-resentados coa dois ou trs
d-
gitos hexadecimais, enquanto que, por exeriv-
pio, para transformar um numero de oito bits
(tambm chamado "byte
) em um numero octal
1

tetn-se que
adicionar um zero frente do nu-
mero, para divid-lo em trs grupos de trs
bits cada

4 . Soma de- numeros b i n Irios pos i: i vo

Realiza-se de forma inteiramente anloga a soma so-


nium de numeros decimais
Para ver isso examine se detalhada , -

mente uma soma decimal por exemplo, de 1672 coro 729. ,


/
J \
\ $
'
\
\
f
W \
6 7 5
-f- f 4 -
f-
L
'0

Comean d o a Pa r tir da d irei ta, foram r as


opera e. s :

2 4 9 ai 1 !w V a U TB ( = 11)
i 4" 7 4 "
0 e v a x -um ( - 10)
+ + T = 14 )
I 6 W-
4 8. V a i ~ um f

1 + 1 2 e v3 X -
zevo * 02)
0 * 0

C o oi os nmer os bin rios p r o cede- se da mesma rorma.se


:

e guinte s reg r s

0 4 4 0 nn
V V gp U e vai -um
n + o + ?
X ~~ n
i/
1
1. u?
5'
A. e va i zero
Q 4 4 i A * 4k& n j,

1 1 5K
i u i? ij 8 V 3 X ~ li XII

! 4 1 4 X 551
1 -* | e vai-um

Exempl o
1.9) Sei a somar 101 1 0 1 0 c oai 10011. Tem s e :

*N J&"
1
1 i i o

Li 3 m& j. cl '
S B B p . X X d B. ( XT811 S ? T&B i. .. Z B. O d. O 3. -S S 8 g U Ti *
ce s operaoes :
2 b

0 + 1
1 e V Br - 2 e r o
0 4* i 4 [
st A %t
V
rs
tsx

ii rn
1 f 0 4 0 1 0 a i ~ze ro
0 4* 1 4 > 1 0 va i -ze r o
0 4 1 + i 0 0 va ~ura
1 + -t
1 i KS )
6 V i - u. m

1 *4 0 1 0 V i iL -zero
0 4-
1 ** 1 e V 8. -ser o.

0 4 * 0
g

coluna dos hts do segundo numero


vai -um ou .

vai-zero bits do primeiro numero

2) Somar 11101 com 110

1 1 1 0 0
/'\ jr~\ p pr^\ pr-\

0 0

5 . Representao de numeros negativos

Obs . : Nos itens seguintes assume-se sempre que um nu


me.ro teta oito b ts de comprimento quando for

bina o

Ate agora, so foram ratados os nmeros positivosf


,

Contudo , obvia a necessidade de se manipular nmeros nega


vos, de modo que e preciso uiaa representao adequada para os
mesmos necessria essa representao para nu
E s pe c 1 & loeti t e , e

meros b itiar ios j , de modo


c o si p u a d o r possa rs c o n b ecero ue
os
numeros que sejam negativos c-,..mo tais.
? Q

Existem tris modos d representar nmeros nega t i v


em no ta ao binaria chamados de : sinal e amplitude. comp lemen
to de um e complemento de doi

a) Represen tao cie sinal e amplitude


Dsualmenfce, quando .se quer denotar um nmero como negativo
(em qu a 1 quer base) , coloca-se i sua frente um s nal de menos
( -) q u an do positivo, s v z e s
, e o sinal de mais (+) Mas , co .

mo computador nao reconhece os sinais + e mas apenas


uni

z e r o s e uns, ve-se que e necess a rio reservar um bit do nume

ro (ge salmente o primeiro) para indicar o seu sinal (usa-se


z et o p ara indicar um numero pos tvo e ura para indicar ura

negativo). Supondo ma nmero de oito bits , tem- se, por exem


p i. o ;

( +6 ) ,,
q
o;uoo ono

(-6) '
,
10
iboo ono
t_ ...

sinal ampl i tu de

Desta forma pode-se representar os numeros inteiros de -127


a +127 Note-se que existem duas representaes do numero
,

gero, a saber: 0000 0000 e 1000 0000,

b) Representao em complemento de um.


Nesta, representao, para indicar um nmero negativo troca-
se os seus zeros por uns a vice-versa, Como sempre, o pri-
meiro bit indicara o sinal do nmero. Exemplo:

( +6 ) , 0000 0110

/ .
K b)\
f. 1111 1001
lD i

s ina i
}
*
\
J.
n
Ks

Deste modo , analogamente ao anterior, pode-se representar os '

numeros ae 127 & *127 e o zero continua cora duas represen-

taoes , a s abe r : 000 000 e 11 1 1 1 1 *

c) Representao em complemento de dois.


Para se obter a representao em complemento de dois, soma-
se um (em binrio) a representao em complemento de um, re

tendo-se apenas os oito bits mais a direita Exemplo;

+ 6} *> 0000 0110 > 1 1 1 1 x 00


-
10
complemento
de tra
i a 1
.... 1111 1010 ( -6 ) e m c os
0000 0101 -% vo i t
pl emento de
8 I. il rX l
dois.

representao em complemento de dois tem as seguintes oro


priedades

la.) 0 primeiro bit do numero indica o seu sinal; positivo se


zero e negativo se um.

2 a.) S o representa v e is os n ume r o s d e - 1 2.


, cuj a re p r e. s en t a -
ao 1 00 0000 ; a +27 , c u j a r e pr es e n aa o 0 1 1 111
Desta forma , o numero -128 t ao tem complemento de dois.
De fato, tem-se;

128 *--* 1000 0000 --> 01 1 1111 4


i
.
.... .
.

,
.
*5

1000 0000 + 128 ?

que est errado, poa i. a representao de - 128 , no de


+ 128 .

3a . ) 0 nmero zero tem apenas urra representao iOOO 0000


De fato, tem-se
0000 0000 -o Pi 1111.

jdes p r e z a. d o i> ljQ 0 0 U000 0 00 0000


6, Aritmtica no Patinho Feio

Ja foi visto coro somar numeros binrios positivos e


como representar s meros negativos em oito bits Deste mo cio .

pode-se passar i soma (e subtrao) de numeros de oito bits


que e o que o Patinho Feio consegue fazer diretamente atravs
<J seus circuitos eletrnicos. Versea tambm como operar com
~
,

numeros de mais de oito bits e como reconhecer quando o resul-


tado de uma soma nao pode ser representado em oito bits ( isto
o nmero e menor que -128 ou maior que +127),
,

a) Vai -um:

Denomina-se va-um de uma soma entre dois nmeros de oito


bits ao vai -um na ltima soma realizada (bit mais significa
ivo), ou seja, ao que seria o nono bit da soma (se fossem
considerados nmeros de nove bits). Exemplo;

1 i 1 1 1 1 0 0 0

0*1 0 1 1 1 0 1 0
+
0 I
1 1- 1 0 1 1 0 0

1
1 0 1 0 0 1 1 0

0 va - um func o n a e e t i y ame n t e c o ta o nono bit da soma,per m t i n

do o tratamento de numeros d 2 qualquer comprimento .Exemplo


seja somar os seguinte s nr eros

a 0101 1101 1010


+ r
b 0110 1001 0113

a+b~ 1100 0111 9000

Dividindo a e b em duas partes de oito bits cada um, vem;


-

0000 0101 1101 1010

0000 0110 1001 011.0

0000 1011 1 0111 0000


4
1 va i *uta

0000 1100
segunda p a r t e
* *

prime ira p a r t e de a+b


de a+b

de modo que, com o U S o do vai - ura s a soma foi realizad cor~


retamente . Bote-se que as segund as partes de a e de b nao
s ao interpretadas c O B o meros n egativos de oi to b i t s Cape-
i

sar ae comearem com um) uma vez que e necessrio som-las


normalmente (como s fossem numeros' positivos de oito bits ,

ao precedidos de sinal) e obter o vai-um correspondente

b) Soma e sub trao de numeros no Patinho Feio

Detaons t ra- se o seguinte z sejam dois numeros a i b escritos


em notao binaria de n bits. com nmeros negativos em nota
o de complemento de dois. Para calcular a-b, basta somar
a com o complemento de dois de b s retendo os ti bits menos
significativos (desprezando o vai-um) . Se a resposta for ne-
gativa, estarS tambm em complemento de dois.
Exemplos
19) 3 ~6 1 0000 01 01 (+6) - 0000 0110
1

C-6>1 0 - 1111 1010


L_


0000 0 1 0
vai-um0 i 1 1 1111 (

29) 5 + 6*11 0000 0101 * 5


10
0000 0110 - 6
10
vai-um*( ) 0000 1011 - 1 1 ,
-
10
30) -5 - * 11 1 11 1 0 1 -5
1 0
j
11 1 i 1010 -D
1

va-uai-*=l n 11 0101 .1 X
1,

49) 5 4 5 * ** 0 j j 1 1 10 1
10
00 00 0101 +5
10
vai um-1 00 00 000 0 - 0

Desta forma, consegu e~se r ea 1 i zar qualq uer soma e subtraao.


no Patinho Peio, de nume r O s de o to bits representados na
n otaao c o mp 1 e ra e ti t de do i s * ut i 1 izando -se apenas a soma e

a c omp 1 eme n taao de r


0 j q u

Obs. Convem repetir que ti . da imp e d e que se considere, se


a. ss ir) or c. on e o i en 3 . S 0 qunci a 1111 1010 como um
numero de oito b i t: s d e sprov i do de sinal (pos i t i vo) que
va1er ia ea tao ( 250 ) 1 n n a. 1 o game nte 1 1 1 1 1 011 v a 1 e --
10
ria (25 1 ) - ; s orna, ti d Q "" S p ^g f es do s numeros, obtm-se
( 50 i) q que em bn . t r io e 1 1111 0101; este exata-
mente o result el dO Oh b ;
Cl O XI 3 desde que se consi-
.
S O X0 1 ?

dere o va-um como tl O Ti o bit da rae s m a. v

Transbordo

C orno os nume r os for m 1 i mX '


3 . dos a 0 t o bits de comprimento*
dos quais o primeiro o bi de s na 1 H o ta-se que existi
rao valores de a e b tais q e, a + b ou a ~b sej a m uito grande
ou muito pequeno par a ser r -ipre s e rttado em complemento de
dois em oito bits. Contudo, e sempre possvel fazer a soma
tal como no item anterior embora ela resulte errada. Neste s

caso diz-se que houve tran, bordo (do ingls "overf low)
2 , 14

Exemplo .*

C 60 + ( 7 0 * (13 0 > (o maior nume-


1 Q } .j
0
ro representvel e +127)

0011 1100
+
0100 0110

vaiuia*0 1000 0010 * (-126) ,


_ o que esta obviamente
errad

Conclui-se, portanto que


necessrio ao computador dete-
, i

tar estes casos para evitar erros


tio processamento Isto se .

faz comparando os dois ltimos vai-uns ao realizar a soma:


pode-se provar que, se eles diferirem entre si, houve trans
bordo . Exemplo: tomando o exemplo anterior , e detalhando to
dos os vai -uns tem-se
5

H 0 1
1 1
\ i o o
jFF f~"\ p'~\ $r~\ p-

vai -ura 0 0 1 1 1 1 0 0 60
+ 1

0 1 0 0 0 1 1 0 7 0 *

,
0
1 0 0 0 0 0 1 0 -126 n

valores diferentes indica ;

que houve transbordo


(resultado errado)

Tome-se agora o seguinte exemplo : 42 - 27 * 15

FFF
vai -um 0 L 7

1 1 1 Q 0 1 0 1 97
10
0 0 0 0 1 1 1 1

va 1 ot es gua I s ; ind ca
que o resultado esta
corret o
2.15

Pode-se , portanto realizar qualquer soma e sub traa o de nu


,

meros de oito bits ao Patinho Feio, obtendo -se no apenas o


resultado em oito bits na mesma notao de complemento de
dois usada nos operandos, como tambm um vai- um para fun-
cionar como eventual nono bit da soma e uma indicaao de
transbordo que mostra se o resultado obtido est o? nao
correto .

? Blocos e d iagram as logicos

Como ser ao apresentados mais adiante diagramas logi-


cos e funes lgicas executadas pelo Patinho Feio tem-se abai ,

xo 5 uia pequeno resumo:

a) Uma varivel lgica e uma varivel que pode assumir dois va


lotes ,
geralmente chamados de 0 (zero) e 1 (um) , ou F (falso) e
V (verdadeiro) ou GFF (desligado) e ON(ligado)

b) Uma f uno lgica associa a cada conjunto de valores de suas


variveis ura dos dois valores citados (valor logco).

Algumas funes sao muito utilizadas e tm inclusive


gr f i c a como um bloco logco;

NOT (negao b 1 oco;


NOT x

Tabela p 8. T cl 8 funo NOT

X X 1
* NOT x

0 1

] u
i* a X jb

Funo AND (e) h 1 QCQ


j- x AND y

T <i b & i i

X y x * y *'
x AND

0 0 0

o X 0

1 0 0
1 1 1

x , y s e um qu ando x e y for em

r*
Funo OR (ou) bloco i
\ x OH y
v .y
~L
X ti b& X cs

"K y |
x v
y - x OR y
A
0 0 u
0 X 1

1 0 1

1
X i 1

x + y vale ujn quando pelo menos uma das variveis valer


um

49} Puno NAND bloco >_x NAND y


u xn A N D se gu d o d e um N0T ,

Tabela

X y (x.y) x NAND y

0 0 1

0 1 1
f

X 0 1

i 1 0
2 . 1 7

* y 1 V 1 !- O \X f C| LI cfe i 1 Ci 0 S d li X S V :ri: f" X V sis


8 1 S nao f o tr ata s i

m u 1 1 a ti e a m e rs t e u ra .

A \
59 } F u ti a o N 0 R b 1oco r
t
\
X> N0R y

ma OR, seguido de ura -MO!

1abel a

X y x+y ) *
- x N0R v

**
A

o
-?
n

1 0 u

1 1 n

(x+y)* so vale um se x e y forem ambos zero

\ \

69 F un a o X0 R ( ou XC 8 VO} X **4 \
) f 1. L 2. b l oco I x XOR v
y

"ii

Tabela

X y x y * x XOR y

u O U
A
w 1

1 0 1

1 1 0

x y vale um quando x tiver um valor diferente de


y

Um diagrama lgico u ra c o n j u ti t o de b 1 o c o os
I. c. i ii t e r 1 i
gados de : o rm a a c o n s ti tu ir uru a fu nuo log ia ,
2 , 1

Exemplo
\ x y

1 >
f(x,y, 2 > ( x . y ) ( y+ a )

i \

^ \
\ )
i

La" j j

>" j
/
y+ z

&xemp lo pratico* buponha~se que para ser aprovado em um ,

curso, aluno deve ou ser aprovado no pv me iro exame ou,


ura

sendo reprovado neste, ser aprovado era um segundo exame, 0


diagrama lgico correspondente ser a;

ap r ova a o no
19 exame
> Epf O V H &, o tl o c ti rso 28

E p r 0 V B. E O O "'(aprovao no 19 exame) ou
P~
29 exame (se >s I

foi necess- { reprovao tio 19 exame

rio faze-lo) e (aprovao no 29 exame)


H

Obs . n ) No se tratou aqui da multiplicao e diviso de

nmeros inteiros binrios, nem de operaes com


numeros fracionrios, pois tais oper aoes nao sao
diretamente realizveis pelo "hardware" (circui
tos eletrnicos) do Patinho Feio.

s funes lgicas foram tratadas muito superfi-


c i a 1 mente pois tero relativaraente pouca impor
,
-
J D&SCR I AO SUCljjrA DO MINICOMPUTADOR fi
PATINHO FF IO"

Neste captulo apresenta-se uma pequena descrio da


estrutura do computador "Patinho Feio". 0 objetivo S
proporcio
aar um entendimento mais fSc! do montador ("assesbier")
dessa
maquina, atravs do conhecimento das partes de que esta
se cons
Ci t u Naouma explicao detalhada da lgica e f nncionaraen-
e

L computador; para isso deve-se consultar o manual adequa-


do .

iniciai. mente
pode-se dividir o "Patinho Feio i!
,
em ,

duas partes: o computador propriamente dito (UCP)


e a nart lu e.

trata de entrada e sada (E/S). A entrada e s a i d a


ste cotiiDu
tador e discutida nos captulos 12 e 13.

Do ponto de vista do usurio programador, o Patinho


se constitu de cinco registradores , tres "f lip-f lops" e? emen
s_os de memria que podes assumir dois estados,
designados por
0 e 1 ou "desligado" e "ligado"), uma UCP (Unidade
Central
de Processamento) e uma memria de ncleos de ferrite, cujo
tamanho I 4K (isto , 4096) palavras de oito bits cada
uma(oi-
to dgitos binrios) (Tambm pode-se dize r 4R"bytes " pois um ,

e e um nmero de oito b: >)

As palavras da memria so numeradas de 0 a


4096, ou,
em hexadecimal, de /00G a / FFF (os nmeros hexadecimais sero
sempre precedidos de ou seja, so necessrios doze dgitos
/) ,

binrios (quatro para cada d ig to hexad ec itnal para enderear


)

(loto e , designar a posio de) uma palavra de memria

A 1 g um as p o s i o e s d a m e m o r ia te rn fu a oes especiais:

a) posio chamada INDEXADOS (IPX), usada quando oi en


/00 3

dereamento indexado (captulo 4 e 5) e na instruo


(.:;a l j
p t u1 11).
3 .

b) posio / 00 1 , chamada * extenso do acuaulador 1


'
(EXT e usa
da na instruo IRE (captulo 11).

c) posoes /G02 /003 , sao usadas e.m interrupes


e.
quando
guardam o endereo de retorao (captulo 11)

d) posoes ae /O 0 4 a / F / 1? c o n s t i t u e in a ft e si o r a 'propriamente
dLa. on.de pode ser a ruazenados livremente programas e da-
dos ,

e) posoes de /F80 a / FPF n s 1 1 u e m a m e raria prote g ida, o n


de fica guardado o programa carregador ("loader" ou "boots-


t* x3p ) i,cpituiu i6 j s Nus f < h v . <x nada o o ci e s e t* armazenado
por programas normais em execuo.

Os cinco registradores acessveis por programa so;

1 (ACu)
Aeuti-l a do r o principal registrador do Patinho Feio.
e.

Te oito bits de comprimento portanto o mesmo tamanho de


cada palavra da memria. Todas as Operaes aritmticas e
lgicas u fe a tn o Lotitudo do scuiu isdot
c oin o um dos operancos

e o resultado coiocado; todos os des v i o 8 condicionai s


e ai
1-
tipo "pulo , sao feitos atravs de testes no contedo do
CC (ver no captulo 4 os conceitos de "pulo e "salto) e ;

todos os dados que entra ou saem da mquina te que passar


pelo A_iCC .

Exemplo; 0 Patinho Feio dispe por exemplo, das seguintes ,

instiuoes aoes mais detalha d as se r ao vis


\ exp 1. ic

tas em outros captulos);

CR carrega (copia) no ACC o contedo de uma dad a posio


de memria.

SOM soma ao contedo do ACC o contedo de uma dada pos


ao de memria
PLN desvia o processamento para uma certa instruo se o
con teud o do ACC f o r n e e a t i v o

SAI sada do contedo do acumulador para o meio externo

b) Registrador de Val-n? registrador de um bit que (V) - S um ,

S atualizado ,
por exemplo,
cada operao aritmtica (adi a

o) ou de deslocamento (capitulo 10) realizadas. Aps a


execuo das operaoes aritmticas, V e o vai. -um da oceta-
o realizada (vide capitulo 2), isto >e houve vai
ento V = 1 ; caso contrario, V = 0 .

c) Registrador de Transbord o(T) - tambm I um registrador de


um bit, que modificado, por exemplo, cada vez que reali
S

zada uma adio, Se houver transbordo na adio, ento e


feito T ~ 1 e isto indica que o resultado (contido no ACC)
,

esta errado, Se aao houver transbordo, ento T ~ 0,

Nota: quando h transbordo numa operao o processamento no

para: apenas e ligado o bit do registrador correspon-


dente (isto , T 1),

Exemplo: a seguinte operao faz com que V * 1 e T ~ 1.

i i

*"
1111 1

1 0 } 0 0 0 1 1 10 V1 e como 1=# 0.

1 0
vem T ~ 1 ( v , cap . 2

0 0 0
3 . k

d) Contador de Instrues (Cl) :i e registrador de doze


bits (para poder apontar qualquer posio da memria) , cujo
contedo e sempre endereo na memria onde est a prxima
o

palavra a ser lida e interpretada como uma ips t ruio (ou pa r


te de uma instruo). Quando uma leitura nessas condies
acontece ,
o Cl e automat i carn e te incrementado de usa unida-
de .

Como se y, se durante o processamento do programa for muda


do o contedo do 01 ser alterada a execuo sequencial das
instrues prosseguindo a execuo a partir de uma outra
instruo qualquer do programa. Is to * de fato e possvel e

as instrues que permitem faze-lo recebem o nome de nstru


oes de desvio (alteras o contedo do Cl) . Os desvios no Pa
tinho Feio esto divididos em pulos e sal tos (v . cap . 4)

e) Reg i strador de Chaves (RC) do painel - < Pat inbo 1 :


e lo ci s

pe tio seu painel ,


de doze interruptor* ( chave s ) q ue c o ns

tituetn. o registrador de chaves completo de doze bits, Quan


do Patinho Feio nao esta processando
o ;
programa , . pos-
svel atravs desse registrador enders
,
ar qual quer posi-
ao da memria (por isso sao necessrios os dose bits)
bits), e

colocar qualquer valor no Cl. Isto feito, pode-se recomear


a execuo do programa (que partira portanto, do ponto pr

escolhido, ou ento pode-se observar e mesmo alterar o con-


tedo da posio de memria referida, Para isto, utiliza-se
apenas os oito bits mais direita do RC ( RC incompleto) , ja
que o contedo de uma posio de memria tem apenas oito
bits

Alm disso pode-se no meio de um programa ler o contedo


, ,

do RC incompleto copiando-o no CC (captulo 9). Com isso


podem ser previstas ,no programa intervenes manuais do ope ,

rador, que alterem a execuo.

Obs . J Embora o Patinho Feio tenha outros registradores, eles


no sao diretamente acessveis por programa e podem
ser considerados como "rea de rascunho'* para o "ha r
vare" (circuitos do computador).
3 ,

s
Os tre : i xp - f op ' e x s t e n tss no Patinho Feio so
os seguintes:

a) bit de endereamento indireto (BEI), usa<suo nas xtistruoe:


de referencia a memria. Quando igual a um, indica que o ei
dereamento indireto; quando igual
e a anA
zero. no endereaaers-
<=-,

to nao e indireto (ver capitulo 5),

b) "flip f lop* que INIBE /PERMITE interrupo do sistema, coi


forme esteja desligado ou ligado (ver captulo 11)

c) "f lip-f lop" que ndica se o sistema SO EST/EST em inta


rupao (ver captulo 11).

Uma vez vistos a memria e os registradores de que


d eio, passemos a ura quadro geral das ias tru
oes que ele executa

Como ama palavra no Patinho Feio tens apenas oito bits,


nem todas as instrues puderam ser projetadas para caber nu
li a u i c a palavra? Es p e c x a 1 i ente, as instrues que
rs
nst s s
1,

jutU

tam do endereo de alguma palavra da memria nao podiam caber


em oito bits, j a que para enderear toda a memria .a s a o necessa

rios doze bi t s

Desta forma, foram criada; no Patinho Feio dois ti-


P os de in s tr u es

a) instrues curtas, que ocupam umt palavra apenas , as vezes


impropriamente chamadas "micro-i as trues"

b) instrues longas, que ocupam doas palavras da meemovi a


3.6

No t 0t al, o Patinho F e cs dispe cie 50 ins trues , que


for ain dividi a s em grupos ci
, de a e o r do com g} ti as caractersticas.
Abaixo temo s Uffi quadro cora es S p r tipos e tatabenj o(s) capx tu~
1 o ( s ) onde e las s ao f r a t a d a. s c o io. dc t, B, i, He %

n12 instrues de referencia memria( cap


j . 5

Longas j instrues de entrada e sada (cap. 13)


4
<
\b instrues imediatas (cap. 6)
j

L? instrues de deslocamento (cap. 10)


50
q
Instrues i n s 1 1 u o e s do gr u o
p 1 n. s t r u o e s v r i a - (, a.

das que alteram o contedo do CC e ins


trues de painel) (cap. 7 e 9). "
.urtas < instrues do grupo 2 (instrues "que usam
VejT) (cap. 8 ) .

instrues do grupo 3 ( instrues de para


da e interrupes) (cap. 11)

Alem disso, existem comandos par a o mo ntador (nao sao


instrues de maquina) chamados pseudo- ins trues (captulos 4
-

e 15).

Dar-se-i agora uma ideia geral do processamento rea-


lizado pelo computador.

Suponna-se ento, que a ntaquin a. v ai co tn cear a p v cp


sar uma instruo.

Neste instante* o CT tem como contedo um nmero de


doze bits , que aponta ento para palavra da memria. 0 con
utna
teudo desta, palavra e lido e posto numa rea de "rascunho", Au
tomaticamente, o Cl incrementado de uma unidade.

A se g uir, o Patinho Feio determina a partir da pala


vra lida, se a instruo a ser executada I curta ou longa. Se
for curta, ela e executada em seguida e passa-se a uma nova ins
t rua (is to e , aquela para a qual o Cl estiver apontando).
Se a instruo for longa, i lida na memria a pala
vra cujo endereo esta no Cl (coso o Cl tinha sido incrementa-
do de um, se r lida justamentea segunda palavra da instruo
longa). Automaticamente soma-se mais uma unidade ao Cl.

De posse das duas palavras da instruo longa


pode- ,

se executar a instruo se ela for de E/S imediata ou desloca ,

mento. Contudo, se for uma instruo de referencia a memria


e necessrio obter um endereo (chamado endereo efetivo)

Portanto , inicialmente
e calculado um endereo a partir a ,

instruo executar (ver captulo 4). e a seguir a instruo


a

e executada com o endereo assim obtido.

Passa-se ento a execuo da prxima instruo ("pr


xima" significa aquela para a qual o Cl estiver aponcand o) .

Ve-se , ento, que a execuo serl sequencial, a se-


nos que nossa instruo altere o contedo do Cl

s aes ac ima repetem-se ate o computador encontrar


uma instruo de parada ou espera (captulo 11) ou ate ser pa-
rado Bianualmente pelo operador.

Sot a : Observar que a memria armazena tanto o progra


ma quanto os dados , isto e , uma mesma palavra da memria pode
ter seu contedo interpretado como instruo (se o Cl apontar
para ela) ou simplesmente coro numero binrio (por uma outra
instruo) . Isto permite inclusive t que no meio de um progra-
ma se altere o prprio programa, mudando o contedo de alguma pa
lavra que mais -tarde venha a ser executada como instruo. Coa
tudo, recomenda-se so usar este recurso em casos especiais ,por
que ele dificulta a depurao do programa e facilita a ocorreu

ca de erros.
4 - PRINCPIOS DO MONTADOR DO PATINHO FEIO

Conforme se pode notar dos primeiros trs captulos


5 necessrio um certo conhecimento do funcionamento de um com
putador para entender sua linguagem do montador ("assemblcr") .

C ada c o roput a d o r t e m s e u m o n a d o r p a r t e u 1 a r d ependen e d e s uas


,

c a r a e t e rst i cas de func i o n a m eito ,

Mas, o que o montador V Ma verdade, ele nada mais &


do que um programa esc r i to p a r a o c ata p u t a dor, cuja funo ser
vista a seguir.

Lira computador nao entende as linguagens comuns ; ele


30 entende instrues codificadas como nmeros binrios. Desta
fornia, para conseguir que o computador fizesse alguma coisa, o
programador teria que traduz ir seus pensamentos numa sequncia
de "zeros" e uns" compreensvel para a maquina e colocar essa
sequenc ia na memria Ai s isn a maquina poderia executar &s ios
.

trues correspondentes. Exemplo; a instruo que manda o Pa-


tinho Feio parar um processamento tem o codigo hexadecimal / 9
ou, em binrio, 10011101,

Ora, este processo de traduo seria demoradssimo e


sujeito a muitos erros, e alem disso, as instrues no so f
ceis de lembrar : 10011101, por exemplo, nad significa para a
grande maioria das pessoas.

Por isso criou-se o p. o gr ama montador , que atribui a


cada instruo um mnemonico - no exemplo dado, mnemnico e
o
PARE - e cuja funo justamente tomar um programa escrito
com esses mnemnicos o j nmeros binrios das
e gerar
instru-
es de maquina correspondentes, efetuando assim, a traduo
automaticamente Desta forma programa fica mais fcil e rpi
. >

do de corrigir, se houver erres, e mais compreensvel.


H ento uma correspondncia entre as instrues da
maquina e as do montador, isto e, cada instruo da mquina tem
o seu mnemnico na linguagem do montador

Alm disso, existem instrues dirigidas especialmen


te ao programa montador, que permitem controlar o modo como a
"traduao" aer realizada Sao chamadas de "pseudo*" instrues**,
.

pois nao dao origem, normalmente , a instrues que sero execu


ta d as ma is ta r d a

Vejamos quais sao as regras gerais a que deve obede-


cer um programa para ser aceito como vlido pelo programa mon-
tador

a) Caract e r e s

Os caracteres aceitveis sao os, caracteres ASCII,cuja tabe


la se encontra no apndice, juntamente com os respectivos eo
digos binrios Consistem das letr as do alfabeto, dos dgi -
.

tos de 0 a 9 e de caracteres espec iais , como b (espao em


branco) , *, +, *, { return , linefeed , etc
,

b ) Const a n t e s

0 montador do Patinho Feio aceita trs tipos de constantes


a saber : hexadecimais , decimais e ASCII; com ou sem sinal

IV) Uma constante hexadecimal constituda de uma / segui-


da por dgitos hexadecimais ( 0 , 1 , 2 , . , ,9,A,B,C,D,E,F) ,

Exemplo; /A, /IO, /398. Sao permitidos ate. tres dgitos


hexadecimais *

29) Uma constante d ecima 1 t' constituda de uma sequncia cie

um a quatro d gitos (de 0 a 9)


Exemplo; 0, 025, 1, 11,% 2035.
4

39) e constituda do caracter @ s gu~


do por ut SC 1 1 qualq U r *

(* * ' ( braneo ) *
,

exemplos da repr e sentaao binar a de


cada tipo cie constaste

Sons ta nt Representa sO . 1n^ r a.

+ 10 0000 1010
/IG 0001 0000
/5 ou 5 0000 0101
@5 0011 010
/ 2E 9 0010 1110 1001 ( endereo)

de represe fi t o e n tre o mime r 5(5


c omo constam dec ica o /5 otao i e xade id 3LU i I i Ti D S 6 2 *

que e 0000 0101 , e a o s tante A b C 1 1 @5 , cuja represen. . ei C O


e o cogo ASCII cor pondente ao c arae ter 5 s que e 0011 0 1 0

Todas as constantes acima podem tambm ter sinal negativo e


neste caso sua representao binria e o co mp lemento de dois
da constante positiva correspondente
Exemplo
C o nst ante Repres enta S o

1111 1011
710 1111 0000
(S>5 1100 1011

Exemplos de constantes i 1 e g a. s 1,5; 2.75; / X.Y Z ; <)PQ


e t c. ,

Ob s . ; Quando fornecida ao montador unta constante deisasia-"


damente grande , apenas os "'bits'
5
menos significativos
sao c on s i d e rad o s

Exemplo : Supondo que se deva colocar, em uma palavra


da memria do Patinho Feio, uma constante, apenas os
oito bits da direita sero considerados.
Constante K e p resc n t a a Ccn s tan t e Araa z en a d a
Fornecida Binaria na Memria

1 0000 0001 0000 0001


4096 X 0000 0000 0000 0000 0000
- @5 1100 1011 1100 1011
+ 45 9 1 1100 1011 1100 1011

Smbolos

Um smbolo e uma sequncia de uma a sete letras do alfabeto,


das quais so reconhecidas apertas as duas primeiras e a ul-
tima --
tres caracteres, portanto. Se c- smbolo contiver me-
nos que trs letras, o espao em branco preenchido pelo
montad or com o caracter ,

Exemplo
PTX
PTAX representara o mesmo smbolo interno PTX
PTABX

representa o s Xmb o 1 o i ater no A <>(65

uv representa, o smbolo interno

FS9
9 B5
sao smbolos ilegais
AB+
? 2/

Obs . : 19) 0 montador admite um mix imo de 256 smbolos em ca


da programa (ou em cada unidade de um programa, se
for o montador relocavel - captulo 14),

29) Jfcpmes de registradores , instrues e posies espe-


ciais de memria, como ACC, IPX , V, T, etc., po
tem tambm ser usado, s como smbolos, embora reco-
mende-se n ao faz-lo para evitar confuses. Nesta
4.5

apostila s os nome s 4o s c i. t ado s registr a doce s


pos i o es es p e ciai s sao s e ft p r e s u b 1 n. h a d o s

ev tar am b i gu id ad e

d) Rotulos ("Labeis");

Urarotulo e um smbolo ou um H (ponto) que funciona como .

nome de uma posio de memria* Portanto, para se referen-


ciar essa posio de memria, pode-se tanto dar seu endere
o de doze bits como seu nome de trs caracteres, ou ainda
a localizao do .(ponto) no programa. Exemplos sero vis-
tos depois,
Obs ; Um mximo de 256 posioes podem ser rotuladas cora um
ponto, em cada programa.

e) Mnemnicos ;

Mnemnicos sao nomes dados as instrues de maquina e so


empregados de uma forma fixa, isto e, ji esto definidos na
prpria linguagem do montador. Exemplo: o mnemnico PARE
Na verdade, pode-se alterar o mnemnico contanto que se ,

mantenham os dois primeiros e o ltimo caracter, ji que s


esses vao ser reconhecidos pelo montador. Exemplo: PARE po-
dera ser transformado em PAE, PARTE, P ANOTE, etc. Isto no
de modo algum, recomendado por razes de facilidade de ,

entend ira a a t o

f) Comentrios

Um comentrio e uma sequncia de caracteres quaisquer, exce


to return e linefeed que sao ignorados no processo de
.

montagem sendo apenas copiados na listagem do programa (se


,

esta existir). Serve para documentar o programa isto e, fa ,

eltar o entendimento atravs de uma explicao do que esta


4

acontecendo e do que o programa esta. fazendo Comentar ids de .

vem, portanto, set usados extensa ente nos programas

Estrutura de ura programa escrito na linguagem do m on ta d r

A seguinte conveno ser seguida de agora em diante:


para indicar contedo de alguma coisa, esta ser colocada en-
tre os sinais n ( e } n Exemplos

a) ~ endereo /92F indica a posio de memria / 92F


{ /92F 3 ~ /25 indica que o conte do da palavra referen-
ciada acima, de endereo /92F, S /25, No-
te-se que o endereo de uma palavra teta
doze bits, mas seu contedo e de apenas oi
to bits,

b) Se agora essa posio de memria for rotulada com o nome


EXEM, ter-se-, na notaao empregada:
EXEM / 92? (o endereo)
f EXEM} /2 5 (o contedo)

c) Podemos ter ACC * 0 (contedo do acumulador)

{ IPX )
* 92 (contedo do indexador) , etc.

Obs : Apenas para os registradores V e T escreveremos V ~ 1 em


vez de {
V }* 1 , etc., uma vez que T no so posies
e V
de memria, no havendo assim ambiguidade.
Pela mesma razao serio utilizados os smbolos { return } e
(linefeed > para os caracteres especiais ASCII correspon-
dentes a C C .. "R C tambm nao sao pos i oss de memria, e
,

portanto nao sero escritos entre chaves (ver exemplo acima)

Todo p r ogr ama em 1 ng u a g m d o moatad o r d e v era ter a


seguinte estr u tu r a
Um programa e composto de 1 inhas (perfuradas em fi-
ta de papel j
por exemplo), ao seguinte formato;

19) A primeira linha comea no primeiro caracter da fita que


na o for um "feed-f rasie" (nenhuma perfurao na fita).

it, 9) 0 fim ds o Tc ;*. -linha 0 i, xi o r c a ci o pela s e q y e ii c I a de caracteres


{ return } e { linef eed } nessa ordem.

39) primeira linha de um programa te m que ser uma linha de


controle para o montador (ver capitulo 16).

49) Todas as outras linhas tem que ter o formato descrito mais
ad an te .

59) A segunda linha tem que ser a declarao do tipo ou origem


do programa (uma primeira explicao encontra-se mais adias
te neste capitulo (pseudo-instrues) ; uma discusso ma x s
avanada est no captulo 15).

69) ultima linha tem que ser uma declaraao FIM (mesma obser
vaao do item anterior). Naturalmente , para terminar esta
linha e necessrio { return } e {lnefeed}
, .

Formatos de uma Linha

Uma linha pode ser linha de comentrio ou de instru-


o, e cada um dos tipos teia o seu formato particular.

a) uma linha de comentrio tem o seguinte formato;

K < come n t -a r 1o >

na coluna 1

Exemplo **+COMNTE SEUS PROGRAMAS { return } linefeed)


k .8

Obs . : Os smbolos c *'


e > indicam um elemento que deve
set o r n eci d o ( no o p r o g r ama d o r
c a so, o c ora ent r i o )
pe 1 .

Comentrios- podem ser postos em qualquer parte do pro


g r a ta a entre a n a e a 1 1 i a a li h a s rs

b) uma linha de in stru o dividida em c amp os , de acordo com


o s egu in te o r to a t o :

< rotulo > t < mnemnico > "


< operando > t> < comentrio >

Para separar os campos usa-se ao menos um espao em

'

0 campo do rotul o e. opcional, Se existir, deve come-


ar o briga toriament e na coluna 1 da linha, e deve conter um
smbolo ou um . (ponto) que designaro, da por diante, o ende
,

reo correspondente linha em que aparecem, conforme exemplo


mais adiante,

0 campo do mnemnico e obrigatrio e deve conter o


sm e m onco da oper a o a exe u tar

Obs. ; Se nao existir o rtulo, ento a coluna 1 dever conter um


branco para indicar ao montador que "acabou o rotulo
isto l que o que veta a seguir e mnemnico e no rotulo
s

0 campo do o perando depende da instruo .Existem i n


truoes que nao precisam de operando, e neste caso este campo
nao existe Ja. outras instrues necessitam de operando, e nes

te caso, o contedo deste campo tem o formato que a instruo


exigir . (sero explicados conforme forem sendo apresentadas as
ns truoes) ,

0 campo do comen tar o vai daste ponto ate o fim da


linha, serve para comentar as instrues sem necessidade de
e

usar uma linha inteira para este fim. Pode-se colocar neste
4,9

campo quaisquer caracteres, exceto naturalmente { return } e


{ linef eed } , que terminam a linha

Obs Nao conf und ?. S p3O 3 branco tujo cdigo ASCII


c o u oe U-
eed-frame" { nenhu
de c o d g o / 00 30 C| i 1- nao co
a ptt
^ 0
A
l. IJ 2. C i'X -t

2) Quando for cometido um erro na perfurao de uma fita.


pode-se furar a seguir:

19} A c (A controlada) - apaga o ultimo caracter pei


furado

29 ) { r u h ou t } ou DE apaga a linha inteira at e

inclusive o prximo return }

1 nef eed }

i.y) *ISTO E UM COMIA c ENTRIO {return} {linef eed}

29) *IXTO E OM COM ruboutJ (return)


i { linef eed)

Pseudo-In s t ra e s ,*

Sero vistas agora as pseudo ms truoes para o monta


dor absoluto (ver captulo 15, para as pseudo -instrues relo-
cveis) Tratam-se de instrues para o montador propriamente
.

dito, que podem alterar um pouco o modo como certas partes do


programa a ser montado sao encaradas pelo montador v
ver-se-a
alguns exemplos, que serviro tambm para esclarecer o que foi
exp 1 c ad o an f. es ,

1) ORG (origem):

Define a origem de ura trecho do programa , ou seja.


seja a pos I
ao a partir da qual ele deve ser armazenado, ITem
em oper ando
4.10

que e o endereo da referida posio e deve ser una. constan

te (costuma-se usar sS hexadecimal) Esta instruo no po-


de ter rotulo.
Exemplo
CO 1 U H 1

V
ORG IS / 9 2 A.

ALO } PARE

Com D H C X Hl H 5 a . nst uao PARE (/9D) ficara armazenaaa na sos


o 1 9ZA. da meaior ia rotulada com o nome ALO , ou se
js; ALO ~ /92A 1 endereai
{ ALO } * / 9D (contedo)

Como foi dito anter iormente , a pseudo-instruo ORG deve es


tar contida na segunda linha do programa. Contudo, nada im-
pede que haja outras ORG no programa, que especificaro no-
vas origens a partir das quais as instrues seguintes se-
ro armazenadas sequencialmente ( ate achar outra ORG) Nes .

tas outras ORG o operando pode ser qualquer referencia a


memria (ver captulo 5) , desde que previamente definida.

2 ) DEFC (define constan t e

Coloca na palavra ''corrente" da memria o dado especificado


no operando, que deve ser uma constante de qualquer, tipo.
Exemplos

ORG /92A
ALO PARE Com isso, LET - / 9 2

LET DE PC ~#8 LET } = /RE (


=
f>B)

Obs : Como poete ser visto do ax amplo acima, existe implici-


tamente um apontador <posio H corrente"da memria)
cuja posio inicial e t ada na pseudo ORG e que vai sen
do incrementada a cada linha, conforme o nmero de pa-
lavras ocupadas pela iruttru ou pseudo-instruo
dessa linha (por exemplo , a instruo curta PARE, ocu-
pou uma pa hv 3
. 3 . pseiicio JjEitj camheiu ocupou uma pala
via onde colocou a constante /BE)

3) BLGC

Reserva na memria uma area de dados cujo comprimento em pa


lavras e dado no operando, que deve ser uma constante, Na o
e armazenado nada nessa area, ela e apenas reservada

Exemplo

ORG /1G1
PT BLGC 10 Reserva 10 palavras, nos endereo;
ALO PARE compreendidos entre /101 e /10A

Tem-se, ento, por exemplo, PT = flQl; ALO * /lOB

) DEFE (define endereo)

u cs a dti g. 3 palavras ci a uiemo x ia va corrente


0 a p r ok irEia onde
e colocado o endereo calculado partir do operando,, com o
a
19 digito hexadecimal da. 1? palavra feito igual a zero.
E x e.iap 1 o :

ORG /92A A memria ficar com a seguinte cot


ALO PARE iguraao ;

MRA DEFE ALO


ALO MKA XTU
XTU
/ 92A /92b / 9 2 C /9 2D
T
jL_9 D__ | P. 9 I
2A I

(PARE)
ena ereo correspond ente
ALO
ALO

/9 2A
MKA =
/ 9 2 3
{ MKA } *
/ 09
/ n
i MK+ 1)> /A
} etc.
4 . 1

0 operando deve ser do mesmo formato que. aquela para as in:

t ruoes d 0 T 0 erenc i a ta e m 5 r a ( v e r ma is a d ante)

DEFX (de o x. x ndireto)

Anlogo ao ant eror, mas o 19 dgito hexadec tn, X i * p **


lavra i feito igual a um ao i nvs de ser o.
*

Exemplo

ORG / 9 2A ALO MKA XTU s

ALO PARE / 92A / 928 / 92C / 9 2D



MEA DEF1 ALO I
9D i

|
19 I
1
2 T ]

XT 4

(PARE)

MKA / 19
MK + 1 * / 2A

As instrues DEFE e DEFX sao usadas quando h endereamen-


to indireto (ver captulo 5),

6) EQU (equivalncia)

Esta instruo serve oara lar nomes diferentes mesma pos


ao de tn e m 5 r a.

0 ro t ulo obrigatrio r-. e o nome adicional da posio de


memria cujo endereo calculado a partir do operando 0 .

operando deve ser do mesmo tipo que aqueles de instrues de


referencia memria (ver mais adiante) , com a restrio de
que o endereo correspondente deve ser possvel de calcular
inedataiaente o surgir a instruo
a. Portanto tudo o que .
,

aparece no operando deve estar previ, ais ente definido.


4 . 13

Exemplo

PT EQU / 7 2 faz com que os smbolos APT e QTX


hO referenciem a mesma posio de me-
T?
QTX TI
\j u / 7 2

mria de endereo / 7 2 2 .

Outr o modo -
de jeguir a mesma coisa

APT EQU /
/
'df
/
*>
.

QTX EQU P T

Mas es tS e
: rr a

QTX KO
H APT
APT Q0 / 7
t
-?
''l s pois no primeiro EQU, o operando APT
ainda nao est definido.

FIM:

Serve para terminar a montagem e deve ser a ultima instru-


o do programa (o programa s pode ter uma pseudo-instru-
o FIM) . 0 operando tambm deve ser do mesmo tipo que o de
uma instruo de referencia a memria e indica o endereo
onde deve ser iniciada a execuo do programa . Este operan-
do tem apenas o objetivo de documentar o programa.

desvios no Patinh ei

Como j dissemos, ar instrues so executadas se-


quncia Imante, a menos que se altere o valor do Cl , efetuando
assim um desvio para uma outr< posio do programa

Existem dois tipos de desvios no :nho Feio :


*4 s L %

a) Pulos

Uj pulo ocorre quando colocado no Cl um valor pr ~d e t eraii


nado pelo programador e a sua livre escolha. Desta forma ,

consegue-se p ular para jualquer posio arbitraria da m em ci-


r a v

b ) Saltos:

Um salto ocorre quando o Patinho Feio soma duas u n dades ao


contedo do C desta fortaa saltando duas palavras
, (o e spa

o para colocar uma instruo longa).

Conforme sera visto, existem instrues que permitem


realizar pulos, enquanto outras podero resultar apem S S &. 1

tos ,
5 - INSTRUES PE REFER8NC 1A MEMRIA
ENDEREAMENTO NO PATINHO FEIO

Em toda instruo de referncia a memria e. necess-


rio (coro O; proprio nome indica) obter o endereo de uma posi-
o de memria (chamado end ere o efet ivo) , antes de execu t~ia
Existem, no Patinho Feio, 4 raodos de obter esse endereo;

19) Endereamento direto


29) Endereamento indexado
39) Endereamento indireto
49) Endereamento indireto indexado

Todas as instrues de referencia memria so lon-

gas e* portanto , tm um comprimento de dgitos hexadecimais


4

Desses, o 19 dgito i o cdigo da instruo, isto , indica a


operao que deve ser executada . Os outros trs dgitos sSousa
dos para o calculo cio end ereo efetivo.

Vamos denotar o endereo efetivo por eee , e os 3 l-


timos dgitos da instruo por anu.

19) Endereamento direto;

Neste caso, feito eee - mm } isto e, o endereo efetivo


e diretamente aquele especificado na instruo

29) Endereamento indexado:

Neste caso , ao endereo nnn especificado na instruo,


somado o contedo do indexador (posio / 000 da memria) ,

para a obteno do endereo efetivo, isto , eee * nnn +IDX }.

Exemplo: se nnn /220 e { IDX 1 * /IP, ento eee - /23F.


39) Endereamento indireto:

H
0 Patinho Feio possui uai bit" chamado BEI (bit de endere-
amento indireto) que, quando esta ligado, ndica que o en
dereamento i indireto. Este bit e ligado pela instruo
IND, e S desligado automaticamente aps a execuo de qual
qu e r i nstr u a o qu e na o s ej a I ND

No endereamento indireto, nan aponta uma posio de mem-


ria. Ao invs de tomar o contedo desta posio como dado
para executar instruo,
Patinho Feio toma o contedo
a o

desta e da prxima palavras coroo um novo endereo onde se ,

ra achado o dado necessrio, a menos que o quarto bit do


contedo da primeira palavra tomada seja 1, pois neste ca-
so, contedo do novo endereo seria nao o dado, roas
o ua
novo endereo, e assim por diante, at que seja encontrada
uma palavra cujo quarto bit seja 0, Este ser finalmente o
endereo efetivo do operando.

Exeuip lo

19) seja nnn * /125 , cota endereamento indireto

se a -
/l25 n? ^ 1J7F2
/ 126 * / F2 *

ento o novo endereo e /7F2 e o endereamento coa


ti nu a indireto por causa do 1 (pois / 1 * 0001 2 e o
quar to hit S um )

S e nd o agor a. /7 F2 ~ / 00 \
^ 0*02 ^
/ 7F 3 / 26 J *

ento o novo endereo e /0 26 e o endereamento nao


e mais indireto.

Portanto, 0 endereo efetivo e / 0 2 > e o dado usado na


execuo da instruo e C / 026 } (o contedo de / 0 b ) ,
5 ,

29) sej a n tin / 12 5, cora endereamento i n d ir eto

seja / 125 /11n V tf 1,125


12 6 / 2 5 y
/
/

o 11 ovo e nd er e o e a i n da / 1 25 e o e nd e r e am en to <Z O V
tinua .
indireto.

Ve-se que o Pa fc i o nu u c a vai a e a b ar de calcular


i nho Pe o en
d ere o ef e XV o p o em p re estar p r o urando novo ender
is , s

o n&S 1B. 6 S TD ti *5
,
posioes de memria, e o endereamento ind 1 m
r eto nunca ac aba. C h ama -se a isso " 1oo
p de endereamento in
d r e to.

A per tando~s & o boto "endereametito do painel, o Patin ho


Fe o para a 0 xecuao do programa aps t erminar a instru ao
que estiver e xectt taiido Mas no caso de "lo o p
.
d e i nd i x e t o
11

isto na o se rv e pois a instruo no te rmina nunca de


, s0 X*

exec u t a d a . i-i li tao, o nico modo de parar o F a t n h o -Feio, rs 0 S


se c aso, e ap ertar o boto "preparao"

Obs : Deve- S 0 evitar apertar o boto M p reparaao" quando o


P a t n o Feio na o estiver parado. pois poderS
ll
resu 1-
t a r n a destruio do contedo da memria. Para
i

par ar
um pr O es sarnento Cb
1

, deve-se apertar o boto "endere a


mento n (exceto naturalraente , qua ndo houver " loop" de
n d ir e 1 OJ .

Etide reamen ti o indireto indexado:

a i unio dos dois tipos de ender eamen t o . U m a v e z cal c u 1 B.


do o endera o final resultante do ender'e am e n t o i nd i ret *

a e ie
piagr ma de I loc as ;

0 diagrama de biocos abaixo explica coto e feito o


c lo do e f e t i v o p e 1 o P a t i n h o Feio,
e n cl e r e o

Representando; o endereo efetivo por eee


os l timos cres dgitos hexadecimais da instru
o por una
o contedo de duas palavras adjacentes da memo
rxa por P s h h v d i x o b e x a e c i ttta x s }
is

os "bits" di P |3 OC 3 ^ ^ ^ \

i J
D V f
bit de endereamento ind ireto (BE I~1 A
;~>ep5
der eamento indireto)
T V
x i
J A indexa dor (posio / 000 de memria)

,
; '%

n i c i oj

//\

. Indexao ? \~ MO
/

/
SIM
Jt
eee eee + { 1BX}{

Hh'

-Jl
5 VTM

Wi

5

Operandos de Instrues de Referencia Memria

Estes operandss sao usados pelo montador para calcu-


lar a parte min do cdigo de maquina .

Os operando s podes set os seguintes;

1} smbolo - referencia o endereo da instruo ou do dado

onde o smbolo foi usado como rotulo.


(end e r eo s mb 5 1 i c o puro

2) <smbolo> <snal> <deslocamento> re .t e r e ric x a. o end ereo


do caso anterior somado ou subtrado ao deslo
camento (e numero de palavras).. 0 deslocamen
to 5 uma constante da qual so considerados
apenas os uitimos quatro bits, dando, por tan-
to, um deslocamento mximo de quinze palavras
C e nd e r eo s imbo 1 i co re1 at ivo

3) < endereo; e uma constante, cujos ltimos doze bits, coa

vertidos para notao hexadecimal , constituem


o proprio nnn a calcular,

( end er eo ab s o 1 u t o

e o endereo da X- palavra da prpria instrtj


So . Exemplo; o modo mais fci de conseguir
um ' iop
io de. indireto e com a pseudo-instruo
i*
'

DEFI * ,

(endereo relativo puro)

5) * <sinal> deslocamen to> - anlogo ao anterior, so que des


locado para cima ou para baixo , conforme o
< sinal > ,

(endereo relativo puro)



,6

}
4$ M ~ o mesmo que / 000
i ene a r e e o a b s o 1 u o )

it \ nl- J&.
|
refere-se ao endereo da instruo rotulada com
um mais prxima para c ima (.-) ou para bai
,

xo (, + ) da instruo atual,
(endereo local puro)

ina 1 .dgito hexadecimal. 1 er e-se ao end ereo da


N (ses f antes)
instruo distante de N pontos para cima ou pa
uai, Se N for omitido.
sari considerado por omisso igual a 1.
(endereo local puro)

9) * < s in&l |
> <N> g a I p > <de s 1 ocasetito> aualogo ao anterior,
*'s

so que ainda com deslocamento para cima ou pa-


ra baixo (de acordo com o <sinal?> ) Se N for .

omitido, ento e considerado por omisso igual


ai.
(endereo local relativo)

Exemplo s

19) Suponhamos qu PT * /120 e que a instruo atual vai ser


arm a z e n a d a era / 3 00 . Entao t e tn o s ;

ope r a n d tnn resultante


A P'T
a
k. .
120
APT + 1

/ 7 2 2 / 7 1 . .

* -*
1 2 XF
/ **-
f F
i.

/ooo
29 ) end e r e c 0 ORG /I 00

100 . DEPC 5

101 , DEFC 6

hp* 102 e 103 <janeuionico><oper andot >

104 , PARE
FIM <operandoj>

instruo longa

numero do nrni
operando opsrand o resu 1 a t e

1 A 01
- 2 1 AOQ
+ 1 / 1 04
2 A 04
~ 2 2 A01
- 3 2 A G0
- 3 - 1 2 / 0FP Ohs, C a fora do programa
;

3 + 2 / 1 03
+ + 1 1 A 05
- - 3 1 / FF Qbs . : Cai fora do programa

I ara os operandos das instru es


de referencia a memria;

0 diagrama seguinte resume tudo


o que foi dito sobre
os operandos aceitveis nas instrues de ref erncia S memria
Para construir um operando valido, pode-se seguir
qualquer ca-
minho no diagrama seguinte de acordo com o sentido
,
indicado
peias flechas. 0s elementos contidos entre os caracteres " < *
e
devem ser fornecidos pelo orogratsador enquanto que os
ou ,

t-rs devem aparecer na mesma f-rma e posiSo


que no d i agram!
a seguir mostrado.
dgito
hexadecimal d e s lo carne n t o>

Serio vistas agora as instrues propriamente ditas


que, conforme ja foi dito, sao todas longas. Alem disso, ser
vista, tambm a instruo curta IND , que apesar de na o ser uma
instruo de referencia memria, e sempre usada eia conjunto
com e tas .

Instru o IND (indireto) - cdigo de maquina /9F - operando:


na o tefiu
Liga o b t ( BEI } que i nd e a e n d e r e ao e n t o i nd i r e

to. Este bit e desligado pela prxima instruo,


qualquer que seja (exceto , naturalmente , outra
IND) . Portanto , se a prxima instruo no refe-
renciar a memria e , portanto , no exigir o cal-
culo de ura endereo , a instruo IND na. o ter a as
nhum efeito e ter a sido desperdiada.

i 11JLr r ues de Ref e ren tia Me m5r ia :

Instr uo FLA (pula) - cdigo de maquina Qnnn


Pula i. nc o nd c i ona1mente ( i s to e , i nd ep n d e teme
te do valor de qualquer registrador) para o ende
reo eee (end reo efetivo) , calculado a partir
de nn n , s crt i .1 dexaao ,

Isto se consegue colocando eee no contador de ins


truoes, pois este sempre indica o endereo da
p r 5 x ma Ln st r u o a s er e xe c u t ad a . 0u seja* o
P a t inho Fei o , q u a nd o d u r a a te um pr ocessaae n t o en

contra uma instruo Ontm* calcula eee e faz


Cl eee, vai executar a prxima ins
A seguir ,

truao, cujo endereo esta no 1, ou seja* eee s


e om o era dese j ao

Exemp 1 o
ORG /100
FLA CS .1

CS I PLA XON
XUS P j. * (e um loop)
FIM

In stru o PLX (pulo indexado) - cSdigo de maquina Itmn


Esta instruo anloga anterior , exceto que
I

o endereamento e indexado. Ocasiona um pulo ncon

diconal para eee. calculado a partir de nnn coai


ndexaao.
Exemplo
Supondo PLAX /27 e 4 1 D
'

- /2B eee / 207 +
i
+ / 2 S / 23 2
|
ESI 0

Cl 3
f~- / 232 pula para a instruo
de endereo / 232,

Inst r uo ARM (armazena) ~ coligo de maquina 2 nnn.

Copia contedo do acumulador na posio de me-


o
mria de endereo eee (f eee) <q-~- ACC ) , calculado
a partir de nnn eta uso do indexador
t 0 contedo .

anterior da posio eee da memria i per d Ido e *

o contedo do acumulador no se altera

Bo te-s e q ue, e mh ra e s ta i n strua o s ej a 1 o- ng a *


5.10

ela alt e r a penasuma palavr a da memria ja que ,

o acc r ffl registrador de oito bits de comprimen


to

ST
,-xetsp o

Guarda o contedo do ACC na


Pi & t b. p 8. i 8 v r & da i. ns tru ***

PT, A
ao PLA

iSHiiliL-MM (armazena indexado) - cdigo de maquina 3nnn.


Analogamente anterior , faz { eee}* ACC
tnas ,

agc-ia, no Cdlciuo oe cee* a partir de nnn . usa- se


tambm o ndexador.
txemp Lo :
/207 / 208 / 209
ARMX * IPX )
- / 0
ante: 32
BEI 0

ACC /oo
depois 32 00
Sup .
*- / 20

&xp ica <* ao :

nnn * /2
",

eee * /208

Vax aunazenar A Cu * / 00 na 2? palavra da pr-


pria instruo (modifica a instruo!)

Instruap CAR (carrega) - cdigo de mquina 4nnn.


Copia contedo de eee no ACC ( ACC
o
-{eee} )
sem, modificar o xonteudo de eee o contedo anterioi ;

d e P e r d i d o; eee e calculado d nnn, sem


uso do indexadc-r .
5 . 1

Ias 11ug ao C AB X (carrega indexado) ~ codigo de maquina 5n.:o.n ,

Anlogo a instruo CR , mas no cllc.nl o de eee a


partir cie nnn e usada bambe a indexao.
,

Instruo SOM (soai a; ~ codigo de maquina frntm.


Calculado eee a partir
se as indexao, so cie nnn,
xna os contedos do AC C e eee e coloca o resulta-
cl no atC ( ACC -8 ACC + {eee }) , perdendo seu
contedo anterior. eee no se altera. Os bits
V (vai -um) e 1 (transbordo) so ligados OU dit S 1 1
gados, conforme tenha ou nao havido vai -um e
transbordo nes ta soma ( indepe n dent et ent e d o s eu
valor ah ter or) , (ver aritmtica binar a no J? .
e
tinho Peio 5 Cdpi tu lo 2 ) ,

Exemp lo ; :

CAR UM
SOM DOIS
TRES

faz { TRES } - f UM }
*
{DOIS

se 1 UM | 01 1 1 1 00
- {DOIS} 0101 1001

vem TRE S ~
{ } *1 1 0 O r-i
o V-0, T ~ 1 (houve trans
*
ACC 1101 0101

l s l. t ii .ri. o pyM.I indexado) cod igo ct s iu a q u i, n a 7 n. n d.


Anlogo a SOM, faz ACC l uL eeej e a tu
Hza V e T. A diferena e que no calculo de eei
e usada a indexao.
5.12

I ns truo P 3- A (pula se negativo) - cdigo de maquina Annn.


Se ACC < 0 (isto 5 , se seu bit mais a esquer-
da for l), pula para a instruo de endereo eee
(o que se consegue fazendo Cl eee) , onde
eee o endereo efetivo, calculado a partir de
sen . Mo 5 possvel , nesta instruo, p uso do in
dexador para este calculo. Caso contrario C se
ACC > 0) segue sequencialmente

Instruo PLA2 (pula se zero) - cdigo de maquina Bnnn.

Anloga 5 instruo PLAN, mas o pulo se da somen


te se C C = /0Q. Ou seja, se ACC - /
/
A
UAv
ento Cl eee . Aqui tambm na o i pos sxvel
uso da ind exaao no calculo de eee.
E x em p 1 o : Pr o g r m a que multiplica A por B, soman
do A++ . . +A; B v zes

ORG / 372

A DE PC <va 1 o r de A >

B DEFC <v a 1 o r d e B >


P DEFC 0 lugar para. armazenar o produt
MN DEFC -1 nu m e r o me n o s u ra
CAR B TESTA SE B ZERO
PLAZ . + PULA PARA . 4 E PARA SE FOR
SOM me br SUBTRAI UM DE B SE NO FOR
ASM B E GUARDA EM B.
CAR P SOMA MO? AMEM TE 0 NUMERO
SOM A A AO PRODUTO P.
ARU P
E VOLTA A TESTAR B,
PIA *
****

PARE
FIM 2
-

ru ^ v U \ s uu 1 1 um u s&l f ) cod igo do t&aouxni P n n n


u Patinho Feio calcula eee a partir de imn ( sem
o uso do indexador) A seguir testa o contedo cie .

eee.

e 38 F sa1 1 a. duas palavras ( ou sa a^ soma


ao CJ_* (Lembre-se da diferena en-
tre p
i 1 1,1 1. r-, salto - ver capitulo 4),

Sp subtra ma do contedo de eee ou


(

f - s *&> : P \
1 ) .

Esta inst
jstruao e nica que pode fazer uma ope-
a
V *3- & ar i tmet ic a diret ente na memria (subtrair
1 de { eee } ) , s em usar acumulador e nao alte-
r ando nenhum do s outro regist r a d o r e s
( p o r t an t o

V ( v a i-um) e T ( transb io) nao se alteram, mes-


Bi O S& houve r t r aasbord e/ou v a-um na 'operao
de su btraa o } <

0 pr nc ipal u so desta -ubtruao e para centro 1 ar


a exe cuo de m grupo de instrues que devem
ser r epet i as u ta num e r s p r e - d e t e r m I nado de v e z e s
Tambm pode s er usada sara contar quantas vezes
um ee rto tr C ho dt Ot0 trama foi executado. Vide.
os ex emplos 3 s egu ir .

Como Contro J. ri do r t

NUM DE PC TI 9 de ve; v. s a executar

CONTR SUS mrM ( coata ar j ;

EXE*
instrues a executar aps o
p r o c e s s am e n t o r e p e t i t v o ,
EXEC

* instrues a executar r epe t i t v amente

PLA CONTR
1

Comentrio 1:

Enquanto {NUM} # 0, faz {NUM}**s {NUM} - 1 e execu


ta a prxima instruo - PLA EXEC portanto , pu -

la para EXEC e processa as instrues at PLA


GOSTE, quando volta para testar mais uma vez o
valor de (NUM } Finalmente quando for {NUM}* 0
,
,

salta as duas palavras seguintes que contm a ins


truo PLA EXEC (pois PLA instruo longa) .Por
tanto, na o executa PLA EXEC e contnua a execu-
o sequencialmente

Como Contador:

CONTA DEFC

B & v> X N

instrues

SUS CONTA
L PLA BE GIN

Comentrio
Como CONTA -1 < 0 ja da primeira vez que o
,

SUS e executado, fcil ver que o salto nlo se-


r executado e sempre haver a volta ao BEGIN.Ca
da vez que o grupe de instrues for executado
sub: rair-se-S um de CONTA , Portanto , fica-se
com
N 9 de vezes executado CONTA

0 -1

1 -2
2 -3

n -n-1
Ou seja ha a contagem de quantas vezes foram exe
cutadas as instrues (coia sinal trocado).

Qb s >

Devido ao fato de a aritmtica do Patinho Peio


ser com complemento de. 2 deve-se tomar cuidado
para no usar este mtodo de contagem para um nu
mero muito grande de execues , pois pode ocor-
rer o seguinte;

n? de ex e cu o e s valo r de COM TA

125 -126
126 -12 7

12 7 -128
perd e- s e o va 1 o r d o
128 +127 a? de vezes.
129 + 126

253 +2

2 54 +1

255 0 h a v e r a um salto s o
bre a instruo PLA
B (J X N e a s q u e uca
fi

d e i n strues a
tornara. a ser exe-
cutada ,

Explicao i 1000 0000 = -128 j_


f,

*1111 1111 - - 1 j o

0111 1111 + 127 10

V 1 mas como SUS nao mexe era V e T , na o fica


T m 1 remos sabendo que houve transbordo

Exemplos
1) Somar os elementos de uma matriz de 100 ele-
mentos armazenados a partir da posio MAT
is to a :
5*16

{MT } a
l

{ MT+1 } 3
2

{ MAT+99 = a
ioo
supondo que { IDX

SOMA DEFC 0

CONTE SUS 0

PI. A EXEC

EXE C CARX MAT


SOM SOMA
ASM SOMA
3? LA CONTE

0 p r o g r ata a j a descrito para multiplicar A o


B, pode ser refei to c o m a n s t r ue SUS ,

ORG / 3 7 2

A. DEFC valor de
8 DEFC va1 or de B
P DEFC 0 L 0 C A L P / A R M AZEKAR 0 PROD T 0
SUS B TESTA SE B J ZERO;
PLA ^ "
L J SE NO FOR, VAI P/A IN SIR .CAR
PARE SE FOR PARA
, ,

CAR P SOMA MAIS OMA VEZ


SOM A A AO PRODUTO J

ASM P ACUMULADO ,

PLA - VOLTA PARA TESTAR


.
B
FIM
refere-se a primeira palavra da instru
O C i K

.. astr ao P 0 G ( pu 1 ~ guarda j - codigo de maquina Fnnn


D esc - a0 a execuo da instruo pelo Patinho
Pe o

o ca cuia o -adereo efetivo eee a partir


1
de
tmn Nao usa indexao

2V) Seja Cl = /klm {endereo da prxima ns-


tru o que seria exe c u t a da) :

Faz i eee ) ~ / 0

l eee+1} * fim
Cl * fie+ 2

Exp 1 ic aao cl a. i ns truao :

Esta.instruo serve para a implementao de sub


rotinas no programa ou seja, um grupo de instru ,

coes que deve ser executado a oartir de v ar i o


pontos do programa, aos quais se deve voltar apos
uma execuo, conforme o diagrama exemplo
i nxcxo subr o 1 1 n a

=#r
>rogr araa I

xm

Note-se como esta instruo consegue isto:

Tl ;T pl
r u 1? rA XU I ir /V j. 1.7 CRX *

\\
xV

PL pato

Supondo que o endereo correspondente a PATO


/*v'2 e que a instruo PUG ocupa as posioes de
105 a / 106 ( ins t r u ao 1 ong 3. / 3, S, exe-
sa instruo, pa-s s o a passo. da-s c da.
jp A -g*
%
A

104 105 106 107 201 202 203 204


"
m emo 1 a F2 02 1. . .. . ...
f
~
52102
T
j
|
j |
j **
1

PUG / 202 CRX *


S 00 B 3 i. 0 CX

/ 106 I d e it t i f c a a ii n
t s x r u
a o como sendo

louca

1 101 ri a po s iao nd i c a d a pelo C


/106 da memria t a 2'f metade da ws
truo longa: / 02 e soma 1 ao Cl
(portanto, a instruo e /F202)

/ 107 Cal c u 1 a o ti ndereo ef ivo .*


eee" / 202

Cl / 1 07 Se Cl * klra ento
m - / 7 * Coloca 6 Ui t 0 / 2 02 os d
gifcoshexadecimais /0k - /-01, e <

eee+1 = /203 coloca / rs ,/07 ] .

Cl 107 Faz Cl eee + 2 /204

/ 204 Kim da execuo da instruo

A instruo que ser a execut a t a e as s e gu i d a e , ev i


d e n t eme n t e , a qu e 1 a if
o ender e / 204 p o i s es 1 e e
o contedo do CI
'5?
*
<, Contudo, v<i i a s e o que ac o
t 6C 0 11 EIS p O S X 06S /
202 e / 2 0 que foram altera
das pela execuo d a ins truo P0G , Seu c cmt e u d o
acora eguis 1 1 e :

201 202 203 204


~V r
01 07
7 1

1
T j
i
1 *
1 !
j [ ^

Mas, /0 10/ nadu mais e que uma instruo PL /IO 7,

e a posio /IO 1
& aquela imediatamente seguinte
i ins t r u i o P U .i .
5.20

O Patinho Peio executa agora toda a rotina,a par


t ir da pos i a o / 204, at cheg ar ns t ruao PL
PATO, quando h o desvio para a posio PATO ~

/202. encontra-se ma a instruo de pulo de vo


A
ta para o local de onde havia sido "c&assada" a
subrotina e, portanto , ha a volta ao ponto dese-
j. ado.

Est claro, ento, o que faz a instruo PUC <en-


dereo> : p ula para a posio < endereo>+2 e
guarda o endereo de chamada, era < endereo > e<en-
dereo>+l . Note-se que o contedo anterior do
<eadereo> e < ender eo>+ 1 (no caso a instruo
CA R X * ) si m p 1 e s ta ente n ao in tere ssa, poisoPatn h o
Fe io monta a , d u r a nte a ex e c u o,a ins truo de
retorno, destruindo o que havia antes. A- ltima
instruo da subrotina deve ser um PLA < endereo
p s a se eneon tr a o ende r eo para onde se deve
r e t o r na r ( 1 o ca 1 de c h ara a da)
6 INSTRUES IM EDIATAS
(Exceto instrues de deslpcamento - cap. 10)

Sao constitudas de quatro instrues,


todas elas loti
gas . Sao chamadas i mediatas
porque embora realizando opera-
es aritmticas ou lgicas, nao necessitam do calculo de um
endereo efetivo (eee) da memria: dado sobre o qual se vai
o

operar j vem na prpria instruo Em todas estas instrues,


.

o < operando'-* e convertido em nu (2? palavra da instruo), 0


operando, ento, deve ser uma constante, no podendo ser uma
referncia a memria.

Instruo X 0 R coclgb de maquina D2nn


Realiza a funo 1 og iea XOR / 9

bit e entre o ACC e nr, ; o r es u 1 a do f i-

cc , XOR nao mexe e BI V H0m etc T, Lembran


bela de funo XOR > f. em- S6 os s egu n es
t *
s

1. i I n s t. r u a o : X0R (bM X<3R

ACC * 1100 10 10 St b t

i
a b

0 o A
U
@M * 0100 11 01 !

0 1 1
novo CC - 1000 01 X %
JL
1 o !! 1

Exemplo 2; Usa maneira (ha outra melhor ~ vide


capitulo 7) de achar o complemento
de i do CC , isto e trocar os z {(0

tos por uns e os uns por zeros, f!H

executar um XOR do ACC com //FF :

ACC * 1011 0100


XOR /FF /FF 1111 1111
novo ACC ~ 0100 1011
o

Xn tru ao N AN codigo de maquina D4nn.


Realixa a funo igca St AN D bit a bit, entre ,

e iln (segunda palavra da instruo) t co


locando o resultado no ACC No altera V nem ,

T ,

Exemplo 1:
NA ND
ACC 0100 1101 a b a . b
NAN O 25 25-j n = 0001 1001
0 0 1
novo ACC = 1111 0110
0 1 1

1 0 1

1 1 0

Exemplo 2; Uma instruo NANO /FF ter exata-


mente o mesmo ef e i to qu e um X 0 R /F

ver na instruo anterior)



acha :

complemento de do acumulador. I.

Exemplo 3: Quer-se saber se o bit menos sgni


f icativo e zero ou um. Pode-se
f a-
zer u Ki N A N D com / 0 1

ACC 0010 0111 0010 0 i 1

KA D /01 /01 0000 0001 0000 0001


novo ACC * 1 1 1 11 1 0 1111 1 1 1

se era um , se era zero ,


o resultado o re s u 1 ado
1,

e /FE e /FF

a seguir pode-se testar o acumulador


, e des
v iar e o n f o r m e ; re su1 tado
emp 1 o
A K, 000 00 0

SOMI -33 -33 1 oi

novo ACC 0110 0001


ve transbordo

I n s t rua o CA R ( carre ga ira cd i- at > ) - cod i go de m I q u na DAmi ,

CO i O C ci tin tio ACC , sem mexer em V nem em T ,

ACC TI ti .

E x em p 1 o : Um aodc de zerar o ACC executar a


i s t ru o A RI 0 . (Hl um modo melhor.
ver captulo 7).
/ I NSTRUES CU RTAS DO GKU P O I

S ao to d a s ina truo e s c u r t as e , por is so s ao s ve~


,

zes chamadas, impropriamente, de micro- ns truSes So do gru- ,

po 1 as instrues curtas cujo cSdigo de maquina comea cora /8 ,

Nenhuma das instrues des te capt ulo te m opa r a nd o

I n s t y u a o LI MP 0 ~ cdigo de maquina /50,


Limpa o ACC , V e T,
(Ofas . . o u i t imo caracter do mnemnico da ins-
truo 5 o numero zero, no a letra M
G")

ACC * 0
V **- 0

I 0

I ns trua o UM - cdigo de is a quiri, a /BI ,

Paz o ACC igual a um e limpa V e T

ACC 1

V 0
T ** 0

Instruo CMPl - codigo de maquina / 8 2

C o ta p 1 e m e n t a de 1 o ACC e I p a V e T .

ACC -- complemento de um do ACC .

V 0

T 0

Instruo CMP2 - cod igo de m q u i n a, / 83 ,

C o ia p 1 e m e n t a de 2 o ACC e a tua1 i za V e T
conforme o resultado dessa operao
C o ra o
se sabe o c o m p 1 e m ento d e 2 e o b t d o
, a
partir do complemento de 1, somando-se-lhe 0
numero e no Patinho Fero,, o complemento de
i .
,

2 o 6 uffl nume r o e esse numero com sinal


troca-
do .

ACC ** complemento de 2 do CC ,

V e T a tua I z ados se g u n d o o 1 ado d a resu

soma de 1 ao complemento de um do
numero ,

Exemplo 1;

ACC 0110 1011


CMP 2
novo ACC = 1001 0101 ,
* 0 , T 0

Exemplo 2;

ACC 1000 0000


CMP 2
novo ACC - 1000 0000 T - 1

I ms t ru ao LI cdigo de maquina / 84.


Limpa V e T.

V - 0
I o

I s _i N
tr i}c_2 ( 1 n c em e xi ta) - c o d igo d e m a u n a
q /8S ,

Soma um ao ACC e atualiza V e I, conforme o


r esul t a d o da op e r a a o

ACC '# A CC + 1 ; atu a 1 i z a V e T


, 3

Exemplo: As duas sequncias a seguir, teia exa


t ame n t e o m e s ra o eIe t o :

CMP
INC

codigo de ma q uina - 86 ,

Coloca 1 no ACC e limpa V

"Hf
-

Instr ugao LIMP 1 ~ cd igo de miquina / 87

Limpa o ACC e I; faz V 1

ACC -4~ 0
V l.
8 IN STRU ES CUR TAS PO G RUPO _2

Todas estas instrues ocupam uma sS palavra, e seu


codigo de maquina comea com /9 Todas elas podem resultar. em
saltos, dependendo das condies encontradas Convem lembrar

que um salto e sempre sobre duas palavr as e que em duas pala- ,

vras cabe uma instruo longa ou duas curtas, 0 operando des-


tas instrues e uma constante - 0 ou 1, apenas .

Descri o
Co d , Maq Fa z Cl Cl 4-2 se : S a 1 ta dua s p a I avr a
( hexad , Instruo Operando (Resumo) q u a nd o ;

90 ST 0 Se T=0 T*0
91 SIM 0 Se T0 , T+- 1 T 0,e t am b e m f az T **-

92 ST 1 Se T=1 T~1

93 S TM Se T = 1 s T 0 T-1 ,e tambm faz ' *<-


0

94 sv 0 Se V - 0 V0
95 SVM 0 Se V=0,e faz V *4- 1 V0, e tambm faz Va~l

96 sv 1 Se V = 1 v~l

97 SVM 1 Se Vl,e faz V 0 V ~ 1 , e tafflbem f a z V 0

Exemplos 0 trecho de programa abaixo calcula quantas vezes bou


ve v a --um ao se somar segu d am ente um. ao n? -128 an
tes de haver transbordo; o resultado fica em CSI,

LIMPO Limpa a pc-siao CSI


ARM CSI
ROT CAR KL A ( Supor que KLA contem o n? "128, no
INC Soma ma
ST 0 Na o havendo tran s bordo cont i nu amo
PLA FTP Havendo , pu amos p/FTP (f m do trecho
ARM KL A S a I v a valo. atual de KL ma.1

SV 1 Se V for zero .vamos para o prximo valor
PLA RD
CAR cs I Se V for 1, somamos um a CSI
INC e vamos para o prximo va 1 o r

A EM cs I
PLA RO T
FTP

No1 i S6 C| U6 ** p5s as instrues S T 0 e S V 1 h as i ns truoes lon


0 S> PLA FTP Q PLA ROT , que ocupam as duas p i ci v t s q ser 3. -

s a1 <
"
& dM $ S0 a s condioes forem satisfeitas
q 1

9 I NSTRUES DE PAINEL

Fazem parte cio grupo 1 cie instrues curtas, isto ,


seu eod igo de maquina comea com ocupam oito bits. (As ou- /8 e

tras instrues deste grupo esto no captulo 7).

Consistem de 8 instrues com o mesmo mnemnico PNL.


Apenas o operando mudai e uma co nst ante de zero a sete. Os r es
pect vos cod igos de ta aqu na v ao de / 8 8 a / 8P

As instrues de painel usam os


8 bits menos signi-
ficativos (bits direita) do registrador de chaves (RC) do Pa

tinho Feio (ver captulo 3). (Os 4 bits mais significativos so


ignorados), Quando, neste captulo 9, utilizamos a abreviao
RC, entenda-se como 8 bits, e nao como o registrador de chaves
completo, que tem 12 bits.

Descrio das In s t r ues


Cod .Mq
M n e rn nico 0 p e r ando (he xad .) D escr i a

PNL 0 88 ACC RC r, Vft-Q 5 T/fl" 0

PNL 1 89 ACC RC + 1

PNL 2 8A ACC RC - ACC 1


^ atualizam V e T
PNL 3 BB ACC RC - ACC
conforme o re~
PNL 4 8C ACC ** -
RC + ACC sul t ado da ope
rao
PNL 5 8D ACC RC + ACC +1
PNL 6 8E ACC RC - 1

PNL 7 8F ACC RC ; v*-i7 T-^-0

claro. ento por que s sao u s a d o s o s 8 bits menos '

significativos do registrador de chaves eles devero ser colo :

cados no ACC ou somados a este, e o CC s tem 8 bits.


Da s as tr uo ea mcuc ionad a s , prat i c a sa e n te ao se usa
PNL 0, e even tua Ime n te PKL 7 , As outras instrues , normalmen-
te na o se usa ei

Se os valores de V e T forem necessrios, recomenda-


se no usar as xns truoes PNL 1 a PNL 6, porque devido ao "ha rd
?are" da maquina ( isto e, os seus circuitos eletrnicos), as
regras de atual zaao de podem na o ser aquelas que pri-
V e I ,

meira vista, parecem verdadeiras (pr ncip a Imente as instrues


PNL 2 e PNL 5)

N o r a 1 ta e n te ut.i
i! I i z a -si; e atas i n s t r u oes para p e r t i
-

tir que o operador altere a execuo de um programa , entrando


e o d if erent e s va 1 ores no RC

necessrio, ento, que o computador esteja jsarado


ou e espera (ver captulo 11), antes de executar uma instru-
o de PNL, para dar tempo ac operador de introduzir seu dado
no RC (aps o que ele aperta o boto de PARTIDA ou, as vezes ,

I N T E R RU P 0 { v er c aptu 1o 1 1 ) ) .

Ao executar a instruo PNL o Patinho Feio no espe-


ra o operador colocar o dado no SC; executa a instruo com o
v a 1 o r de RC n que 1 e a s t an t e

Exemplo : o seguinte te eh o de programa aceita tm dado do painel


de controle

PARE 0 operador coloca o dado e aperta partida


PNL 0 Transfere o dado do RC p/o ACC
RM * -2 e da para a posio *-t da memria
Nota : posio *2 e o ode est arma. se na a, a
cl instru
ca o PARE, que, portanto, seri destruda ao ser
e x e c u t a d o o A RM , P o r teto, se esse tre c h o de
P r og r am a x or ex e cu t ad o n ovara e nte, o P a t i nho F e i o
na o para antes de executar o PNL , a no ser crue
o dado, tta primeira vez. tenha sido /9D. que
o cSdigo cie maquina da instruo PARE.
Na real I ade, o n u. m e r o cie des loc am e n t o e dado pelo numero
de bits 1 gado do hexadecimal n da ins truao , Exemplo; se -

n - 0110 o u n * 0011 ou n * 1 0 01, etc,, haver a em todos es


se s casos , dois deslocamentos , Contudo, o o p e rand o n de v *

v a ler de 0 a 4 j e os codgos de maquina real mente gerados


s ad -i

o p erando 0 -> n ~ 0000 operando 3 -


**- n 0111
operando 1 n = 0001 operando 4 t> n 1111
o p e t a nd o - > TI 0011
to
<u t

?o w
,,

O 0)
P *

vd -w'
i 0 d -u /S5 +
fit

> t-4
u d
m S -u ai 0
?
d d
-H tf

d
o cS r-4
H U d 0
tf

M
n~t O'
m
H
3 Tj
O
fd iJ > ,M
1
W! ps d d
H o o OJ O
!JJ

M tf
ri
D
ai ca
4J
OJ t st!
X *f4

M W U d L *H
<d
P
se. SI
Q) u ou
53 O 3 "D o CU '0
O
?

-i cr 1

O M
i H q
O a
Jw
H
a> d X* <t3

N
fl f tf CU -
m o i cu
0> d w M XJ tt O r-4 O * &

A
O
XJ
d
0
Qi

f
O
o
W

w
C3
o j

5
w

O' *
es t
ws a o tM t

sd< co
m
W f4
Q
O tt

tf > ct-
;> s m
O 4J O '"w -M o O
i-i


4*3 w u o o X)
* r-i M 3-i V -U U
0 a> d 03 d 5l! d
w QJ ctf M cu ca M o X?
i

i cd
D" e; o
53 0 ,u *H & u 0 M m
OJ
x
s
>
<a

B
ra 1 5

O
O <fj *r*4 X) n *H f
'd tfl <U
d QJ

a O 03 iCt
& 30?
o i 0
t

u cu ira 0
nj -ri
U 0i G
cd

O M o -d
> o XJ p
o cr* G O u
rH O ***4 *-*4 '

o r- m o x ?~-4
O *H t
ir~i

03 X? M m "O M 3 03 cu d Q 03
r~~

T3 vG.i
i
d

<U * H 0) O CU H P <y s- tf!


q
CU *H P
O /tf o a n O u C4 m O Cr C! 1 C.S O
Ci
Oi
tU
o fta TJ
'H
CS

O
O
53
50 Ci
> CO

UJ
w w p
53
w o a
53
S.:
1 0 3

Em pregamos a notao V * v, ACC = aaaa aaaa cm


ACC * s aaa a a a a, , q u a ad o q uerew o s d e a tacat o bit de s ina I . Ev i

dentemente , os a representam dgitos binrios e ho so todos


i gu a I. s em gera X ,

Exemplos de deslocamentos: ACC = 10 li 0101 y = q

Se exeeu t armo Teremos o resultado


so a va s t r u a o ACC V

DD 2 0010 1101 0

61) V 3 0101 0110 i

GE 4 0101 1011 1

DBS 1 1101 1010 1

DE? 0 1011 0101 0 (na o faz


nada)

Exemplo GE 4

v a a a a a a a a

tu ao
s
0 1 0 1 1 0 1 0 1
ini e a
V / / A t 4 * *
um gro 1 0 1 1 0 1 0 11
/ V y ^ "
4 iy
gira 2 o 1 :t o i o i i o

giro 3 1
/ V/V /yV A
101 l.o 1 0 1

/ y- v- /- /v / 'i/v
giro 4 l 0 1 0 1 0 1 1 I

Resultado final: ACC ~ 0101 1011

V 1

c o n f o r ia e e > t a n a t abe la exe ns p 1 o


1 0 ,

Nota: A instruo DDS e usada para diviso inteira por 2 (isto


, se o numero for mpar subtrai-se 0,5 do resultado da
diviso (arredondamento))
Exemplo
ACC e 0011 0101 53 ,
10
DDS 1 + ACC * 0001 1010 * 26 ~ n

L C 1011 0101
/ p
10

DDS 1 1101 1010 -38., 0,


10

ACC 0100 1100 7 6


10
76
DDS 1 0010 0110 n (o nmero e par ,
10
por isso, na o h
arredondam e n t o
11 -- C ONCEITO DE INTERRUPO
INSTRUES CURTAS PO G RU P O 3

Introduz r-se-a neste captulo * o importante concei-


to de in terr u po e , disso, sero vistas
alara as instrues
curtas do grupo 3, a maioria das quais referentes a esse assun
to .

Icicalmente, e necessrio dizer que ha dois modos


de conseguir uma inter rupo no Patinho Feio: 1) por meio de
um equipamento de entrada e sada, e 2) por meio do boto in-
ter ru-po do painel. Neste captulo s sera discutido o 29 mo-
do, No captulo 12 trafcar-se- do outro (E/S) , 0 Patinho Feio
s teia um nvel de interrupo (adiante isto sera explicado com
detalhes)

Considere-se, ento, a sequncia de execuo das ins


truoes pelo Patinho Feio, Uma vez que ele comece a executar
instrues, ele prossegue sequencialmente executando-as uma a ,

uma exceto quando encontra uma instruo de desvio ("pulo* ou


,
1

"salto"), que altera a ordem normal de execuo. E assim, ele


prossegue, at encontrar uma instruo PARE, Note-se que no I
possvel o operador intervir nessa sequncia, a menos que ele
pare o computador manualmente (ver captulo 16 - "Operao)

Suponhamos agora, que o operador perceba, de algum mo


do, que seu programa tem um pequeno erro no-previsto (isto e
que se* se tornou visvel durante
a execuo), e suponhamos que,
em outra parte memria haja uma rotina que lhe permita re-
da. ,

cuperar-se desse erro Seria timo ento , que se pudesse in-


.

terromper a sequncia normal de processamento e executar essa


rotina de correo de erros Mas como faz-lo? .
11

Um mtodo obvio se oferece; parar manua Intente o com-


putador e recomear a execuo a partir da primeira instruo
da rotina em questo (ver captulo 16). Acabando essa rotina,
parar novamente a maquina e recomear o programa a partir do
ponto eiv que se tinha parado originalmente . Como e facil ver
esse mtodo , por envolver muitas operaes manuais lento e
esta sujeito a erros por exemplo, e necessrio lembrar do pon
to onde se havia parado

1? $ V <i f U. e tudo is so seja f ei to automaticamente , criou-


se a interrupo. q u e p e r ta i te a 1 1 e ar a sequenc i a de execuo
da instrues pel o lado de r O t cl <1 maquina

0 n om e in ter rupa o (do ingls "interrupt) c o n f und e


um pouco; par e c e qu e ha n t err u p a o rs o p roces sarnento ou seja
que a maquina pra . Isto aac e verdade; a interrup o n o para
o com pu f ado r ; ela i nter romp e a seque n c i norma d e ex e c u ao das
i s tr u o es

Isto feito do seguinte modo: quando o boto de IN


TERRUPO e pressionado, o eomput a dor r e cebe um pedido de in-
ter r u p a . Ele ter rn ina d executar a presente instruo e, en~
to, verifica, se a nterru p ao esta p e rm 1 1 i d a ou ini bida Supo .

nhamos que esteja p ermitida


Neste caso, nas posies 2 e 3 da .

memria , e montada automaticamente a instruo PLA CX ou se


ja, um pulo para a instruo que s er ia executada a seguir, se
na o houvesse interrupo
comea a execu tar as in s truoes a
part r da po s .
ao 4 ( faz GjC "S 4 ) Novas interrupes ficam

,

por e n qu a ato, inib i. das ,

Percebe-se ento que f oi 3 na realidade, executada uma


instruo PUG 2 (veja captulo 5) c O TH O S 0 C1E Q. S 1 1 V' 688.6 n8e~
rida eatre a i n s t r u a o aps a f [ii a 1 a interrupo ocorreu e a
instruo seguinte *
11

.'s :! b pOB 1 OOS '


3 .
""
S f - t.i
gO T O XI d Ki TB O d 0 iX d C

se deve recomear o programa incer rompido , ai posto automatica


mea te pelo computador A '"outra parte da Bieatia", referida ai
.

guns pargrafos ac ima onde esta a ro tina de correo de er-


ros comea na posio 4
, memo r i;

A granue '/iuagsss co mtodo acini e que a instruo


PIJG 2 na o estava originaJner te no programa , mascomputador o
to forado a execut-la, apertando-se o boto de interrupo.

Exemplo

permitida interrupo aieior ia


IPX /000
/272
127 3 EXT / 0 1

-/002 02
-d
pedido de / 003 7 6

i

/27 3 i
interrupo i /
n / 004 r ecome a e
/ / /
/ O

/ 005 i | execuo *

(211 i

4
i

s
*
[
in ibida
; interrup-
o

.Lb geral, a primeira coisa que se deve fazer ao come


ar a rotina de interrupo, e guardar o contedo cio CC. o
IPX e da EXT e, even tua liuent e de V e de T em posioes de me ,

moria conhecidas. Isto porque, como provavelmente a rotina vai


utilizar modificar essas posioes e registradores, seus valo
e

res anteriores, necessrios ao prosseguimento do programa, se-


riam destrudos Essa operao e chamada 'salvar o estado
.
da
maquina no instante da interrupo.

Logo antes ue recomear o processamento do programa


deve-se recolocar os valores originais nos respectivos lugares,
para que o programa recomece exat
exatamente
am ente no
n estado em que parou
11.4

A isto se chama "restaurar o estado da maquina aps o atendi-


mento da interrupo (isto restaurar os valore s existen te s
i o momento em que houve a interrupo) .

Foi dito mais atras que o Patinho Feio tem apenas um


nvel de interrupo . Isto quer dizer que uma vez que foi acei
,

to um pedido de interrupo , e o Patinho Feio esteja ento pro-


cessa ndo uma inter ru a o novas interrupes estio inibidas .

Ou seja,, no adianta ficar apertando o boto INTERRUPO do


painel; o Patinho Feio nao aceitara novas interrupes enquan-
to nao acabar de processar a atual.

razo disto
e simples; se fosse aceita mais uma in-

ter rupo novo endereo de retorno destruira o antigo


o ao
ser guardado tambm nas posioes 2 e 3 da memria. Em conse-
quncia, nao se saberia atais onde ocorreu a primeira interrup-
o, o que evidentemente nao deve acontecer.

Como foi executada, no instante da interrupo, uma


instruo PUG 2, poder-se-ia pensar em acabar a rotina com um
PLA 2 , Deste modo haveria a volta i posio 2 e al seria en-
contrada a instruo de retorno ao ponto em que se havia aban-
d on a d o o progr ama

De fato, este mtodo funciona se no se quiser, de-


pois, novas interrupes . Mas se for encarada a eventual neees
sdade de se ter mais interrupes, nao e possvel acabar as-
sim a rotina, pois novas interrupes esto inibida s*. neces-
sria uma instruo especial que. ser vista a seguir.
1A. I
1

K
J

Ias tr u oes C urtas do Gr u p o 3 t

Agora, ento, sero vistas as instrues relaciona-


das com interrupes, as quais so ura subconjunto do grupo 3 de
instrues curt as s que e corapo? t o de 8 11 s t r u o es , todas cur-
tas. Os cod gos de maq u i t a cor :es p o rui et\ t e a V cL D dG / yO p <i $r a 3-

primeira, a / 9F pa X' < ct ultima Nenhuma tem o p e r and o i


s

Instruo PUI - codigo de miquina /98


Pula para a posio de memria /002 e limpa o
6b tado dc: ; n trnipu , fis ts e a instruo ne-
cessria para terminar uma interrupo, confor
me a discusso anterior. equivalente a um
-ejA a termina a atuar interrupo, por xsso,
l.

uma nova interrupo fica agora permitida


t ta instruo e o uni c o modo de durante um ,

processamento, terminar uma interrupo. Quan-


do o Patinho Feio esta parado , pode-se tambm
apertar a boto "pr eparaao {ver cap. 16),

I. ti s t r ua o TRE ** cdigo cie maquina / 99

1roca o contedo do acumulador coe o da exten


sao (posio / 0 0 1 ) Isto permite acesso rpido ,

ao contedo da extenso sem que a informao


eont ida no C C sej a perdida
ACC EXTl

Ins truao IB codigo de maquina /9A


Inibe a i n t e rru p ao do c o m puta d o r

h< X p- X C aO 5

Pode acontecer de existir um programa ou um tre


eho de programa em que no se quer que haja in
terrupao de modo algum, mesmo que algum, aci-
dental ta ente, a pe r t e o botao 1 N T E R R P .
11.6

Para estes casos existe esta instruo. Aps


executado um IN1B , no a mais possvel inter-
romper o sistema ate a execuo da instruo
PBRM (descrita a seguir). Esta instruo no
te efeito se o computador estiver tratando uma
interrupo pois neste caso a interrupo j
esta ifj I b ida .

In sjt rua o PEItM - cSdgo de m S quin a / 9

Permite, interrupo do sistema.


Esta instruo serve para tornar a interrupo
novamente perm itida , uma vez que ela esteja ini
b ida pela execuo da instruo IN1B .Caso con-

trario, ela nao ter efeito algum.

Ateno ; Se o Patinho Peio ja estiver em inter


rupao, esta instruo nao vai tornar nova in-
terrupo p e ra t i d a . O nico modo de fazer is-
so terminar a atual interrupo atravs de
uma instruo PUL

Notai Alem da interrupo pelo painel, estas


instrues tambm inibem e perm i tem in-
terrupes de equipamentos de E/S (Ver
captulo 12, para mais detalhes).

E x emp Io

x is -E jB

"x

~
\ neste trecho nao acontecera in-
tertupo mesmo se for apertado
/ ,

o boto do painel.
PERM
1 1 .

I nstruo ESP (espera) - .cdigo de maquina /SC


- 5* *' a o P i* ocas s <xib e n. t. o u t e. a c o u tecer u m p e cl i cj o <j e
x nte rr upao ou ser <i c i. o n a ci o o boto de |> arf i. cl a
. t rua o e mais usada no caso de
tf . 1 i,
inter
rupoes por perifricos de E/S (capitulo 12)

Instruo PARE -cdigo de maquina 9 >

j- ara o ?ro c. que so recomea


- s a te e nt o
quando ,

for acionado ootao de partida. A diferena


o
,

ento, entre as instrues PARE e ESP e que , ao


ser executado um PARE, no adianta apertar o
boto ae interrupo que o processamento na
recomea, o que acontece no caso da instruo
ESP .

itruao TR eodigo de maquina / 9

roca o contei do fiCSllsoOt CO O d.O ldiX


<1 0
d. o (posio (3 da memria). Isto permite aces-
so tap ido a o contedo do indexa d o r sem perdei
a informao contida no ACC

CC , 1 1 DX }

Instruo I ND cd igo de ma qu n a / 9

Indica que na prxima instruo o endsremen -


to e indireto
Se a instruo no for de refe- .

rencia memria, o IND no tera efeito algum,


0 uso desta instruo e os modos de enderea-
mento esto discutidos com detalhes no captu
lo 5.
11.8

V&T S8*" agora um pequeno exemplo de programa que usa


interrupo. Nao 5 um exemplo tpico ,
porque nao e necessrio
s a 1var o es t ado da maquina no momento da interrupo e a entra
da e sada de dado S SO l 5 ti t Xs *

0 programa aceita dados pelo registrador de chaves e


acumula numa somatria pos colocado o dado, o Patinho
. Peio
entra em esper a e pode-se apertar o boto de partida para so-
mar o novo dado ao resultado anterior da somatria, Apertando-
se o boto de interrupo o novo dado ser subtrado do resui
t

tado anterior

OEG / 4

CMP2 Troca o sinal do numero e volta

PUL

QB.G / 17 3

LIMPO

TRE Limpa ACC e i bai

LIMPO

Lt
F.R PARE
P/colocar o dado (o r e s u 1 tado da somatria
PNL 0 pode ser lido no ACC)

ESP Para decidir de soma ou s ub tr ai

SOM 1 ACC -9- ACC + { EXT}

ARM 1 Guarda n o v o v alor da s o ma toria na EXT

PLA LER

FIM / 17 3 Ex e c u a o come a e :
/1 7 3
12 - M TOD OS DF, ENTRADA E SADA DE DADOS

c st.e capitulo ser a iniciado o estudo de uma das


par
tes mais importantes (para qualquer computador) ou sea,
, a en
trad a e sada de dados que modo de trocar informaes en-
o
tre a mquina e o mundo exterior. Ha diferenas muito grandes
entre os mtodos instrues de E/S (entrada e sada), de m-
e

quina para maquina, e por isso, este assunto e um dos


mais di-
fceis de aprender, na programao de qualquer computador.

Ser vista, naturalmente, a E/S tal como e realizada


no Patinho feio. Neste captulo, apenas os mtodos
para real-
Zo * a ser3 examinados. As i ns truoes
1
correspondentes, e
exemplos, sero vistos no capitulo 13 ,

Abaixo tem-se um esquema da interligao entre o com


p utador e seus e ou paroe ntos d e E / S

Da figura acima tem-se a primeira regra (sem


oes) todos os dados que entram ou saem tem que passar
acumulador
1 2 2

.. n h o Feio p o -d e to. ser 1 iga dos de


E/S (no laixirao cada qual ocupando um endere o de E/S, numera
') ,

dos de 0 a F (hexadecimal) Atual me n t e n a 6 e quipam e n t o



ex s ,

cluindo pa i n e l e duplex , 1 1 g3do s c.o ii forme a tabela a baixo ;

E n d e reo Tipo
aquxparoento X B.- a ou salda

Painel (EC) E
5 Impressora (HP-260 ? A
6 8 -Bit duplex

8-Bit duplex
8 Perfuradora rpida de Fita de Papel
9 Leitora de Cartes E
A D&CWRI TER (Digital Equipiaent Corp ) . E/S
B TTY (Teleprnter da TELETYPE Corp.) .E / S
Leitora de Fita de Papel E

Os outros endereos de E/S ainda esto vagos,


A impressora e uma HEWLETT-PACKARD 2607A, com 132 colunas
A DECWRITER e uma "maquina de escrever cota 7 2 colunas;
o ter-
minai da TELETYPE tambm, s que alem di SSO , inclui leitora e
perfuradora de fita de papel.
Os 2 endereos ocupados pela interface "8-Bit duplex" so para
possibilitar a ligaao entre o Patinho Feio e outros computado
res .

Recomenda-se , para cada equipamento , consultar o aa-


nua! fornecido pelo fabricante, para ter detalhes de operao
do aparelho. Consultar tambm os apndices deste manual,
onde
tambm se encontra o codigo ASCII, que e usado nos equipamentos.

Obs Os equipamentos de E/S efetivamente ligados ao


;
Patinho
Feio, vao sendo modificados nu d ida em que novos projetos
so
desenvolvidos pelo La ba trate* r o de Sistemas Digitais. Para de
ter uma relaao atualizada de r-ses equipamentos e mais
detalhes
de sua operao, recomenda-se onsultar o manual "Resumo
i,
dos
Equip am e n t. o s e E/S d o P a t inho
eio , publicado pelo Laboratrio,
1

Estrutur a dos Equi pamento s de K/S (exceto painel)

Para fins de programao , todo equipamento de entra-


da e sada pode ser considerado como tendo:

a) um registrador de 8 bits;

b) um flip-flop de controle;

um flip-flop de estado n
e) ( busy"(ocupado) ou "ready" (dispon
ve 1 ) ) ;

d) um flip-flop de pedido de interrupo;

e) um flip-flop de "permite ou impede pedidos de interrupo


do dispositivo,

0 painel s tem o registrador de 8 bits, chamado re~


gstrador de. chaves , que fisicamente so as
chaves a direita 8
(8 bits menos significativos) do RC completo de 12 bits. Por ,

esse registrador s e possvel a entr ada de dedos. As instru-


es relativas ao painel esto discutidas no captulo 9,

Qks ; realidade todos os elementos citados acima esto em


interfaces (circuitos que ligas os equipamentos de E/S
ao Patinho Feio), mas isso nao e relevante do ponto de ,

vista do programador. mais fiicil consider-los direta-


mente como pertencentes ao equipamento em questo,


m toda
cie ciados
en r a q a.
o -dado (8 bits) nassa
t,
<i 5

meio exterior (isto cartao fita perfurada, teclado, etc.),


e,
para o registrador de 8 bits do dispositivo correspondente .Com
pletado esse processo, pod -se pass-lo desse registrador para
o ACC .

Em toda said de dados, o dado (8 bits) passa do ACC


para o registrador de bits do dispositivo correspondente,
8 e
da para o meio exterior Durante este ltimo processo, no se
pode mudar o contedo do registrador de 8 bits, pois seno ha-
v e x a erro na sada.
4

Entrada

fiqu ipamento de
0 operador
Entrada
pressiona
uma tecla

Sa da

Como e fcil ver , ento, entrara ou saem 8 bits por


ve 2 A imagem no meio exterior desses 8 bits depende do dispo-
.

sitivo. Por exemplo se se tratar da DECWRITER ou do


,
terminal
Teletype , que usam o cdigo ASCII , ao numero binrio 01.00 1011
corresponde a letra K do alfabeto. Portanto, se se mandar sair
0100 1011, o dispositivo escrever a letra K no papel.
Analoga
mente, se numa entr ada d e dado s bater-se na tecla K do
, tecla-
d 5o computador recebera o numero 0100 1011.
(No apndice en-
contra-se o cdigo ASCII completo). A sada ou entrada e
e -
j.i

tao , efetuada caracter por caracter.


t. X t. cl . e pap ' 1.
p OtI H !7 3. d que saX da
12.5

1 i da na 1 e i to ra de tas , t em 8 trl h.S , orrespondentes


Co rres aos 8
b 1. s cl a ps i a v ra, e cada c o 1 u n a corre s pond a um c ter
GSSa V#*
iT* fu f*
'.t
i'i r*
*.
f*
;. er for a 1 etra K ,
na t a esta, r i per
LI <3 . L ura me n g .| a > t. a pe r furaao pod e s er a ter p r e da como sendo
simplesmente o numero / 4B . do depende de que especie de da
dos foram colocados na f Lta. se numeros binrios ou um "texto"
codificado em ASCII.

Ver-se-a agora os dois possveis mtodos de E/S

a) Mtodo "wa t-or-f lag :

vonsiste no seguinte; manda-se, por exemplo, entra um ci aao


Ora, este dado deve p tssar do meio exterior para o j. eig stra
dor de 8 bits, e isto leva algum tempo Nio se prossegue
processamento , mas ica se "perguntando 11
ao dispositivo
ja acabou?" at que ele "responda Neste i ns m
te pode se passar entrar mais um dado o dado para o ACC e
ou prosseguir com o programa, se for o caso. (Por isso o m-
todo se chama "wai t-for-f lag" isto , espera um aviso ao ,

dispositivo de que ja acabou).

Na. sada e analogo mtodo


passa-se o dado do ACC para o
o :

registrador de bits do dispositivo conveniente, e manda- 8

se passar o dado desse registrador para o meio exterior .Ho


se continua o programa, mas fica-se "perguntando ao dispo-
sitivo; "j pa-ssou?, ate que ele responda que "sim", quan-
do-, ento p o d e s e sair o prosinso dado ou prosseguir o 'pro-
,

grama,

ft e e sacio f ic ar fazendo essas p grguntas , por qu e se a


transf era n c ia do d <i do entre o tn e xo 8x tern o e o re gi s tx ador

de 8 bits ( QU vice -v e rsa) nao tiver acabado , nao se p ode 1 e r


o c onte u o do r eg istrad o r de 8 b i. ts (pois o que li es ti xao
r

e o dado que c| ueratnosi) t ia entrada; e, na s ei id 3 .


j n ti o se po
de colocar 0 1 x oulr o d 0 cl o ( p01s nao d es fru i r o d ad o c| ue es
ta sa indo i ) ,
D IAGRAMA DE BLOCOS D O MTODO WA X ?~F OR -FLA
if

PAR A ENTRADA DE DADOS

Passar um dado do
meio exterior pare
o registrador de
8 bits

NAO
V
j acabou ?^>
V
X/

uopiar o uado <o

Registrador de 8 bits
para o acumulador
1 7

DIAGRAMA DE BLOCOS DO M E ! 0 1) O " WA I T - F O R-F L A fi "


PARA SADA DE DADOS

PRIMEIRO MODO SECUNDO MODO

1
Saa ura dado do
, NAO
acumulador para o \ refere-se ao
-< j acabou? > >
.

dado anterior
registrador de
8 bits

SIM

Passe-o do registra- Copie o dado do


dor de 8 bits para acuitml ador para o
o exterior registrador de 8 bits

ref ere~se ao
"
dado atual
[

_ . . .
4
L _
i
Passe-o do registra
dor de 8 bits para
o exterior

1
1
12.8

0 segundo mtodo de salda mais rpido que- o primeiro por


que. enquanto o dispositivo passa
meio exte- p dado papa o

rior pode-se continuar processamento* S depois de algum o

tempo quando far necessria a sada do prximo dado i que


se testa se j acabou a sada do primeiro e a ento pro-
v a v e 1 me n t e , o s po s i t i vo j a te r I acabado seu t r a b a 1 h o, ou
pelo menos p tempo de espera ser a menor.

b) Mtodo de Interrupo:

Como se deve ter percebido da discusso do item anterior o


tempo que um equipamento de E/S leva para transferir um da-
do catre seu registrador de 8 bits e o meio exterior mui-

to m a io que o tempo de o Patinho Feio executar uma instru-


o qualquer . Logo, h um grande desperdcio de tempo em i
ear esperando o equipamento acabar sua. tarefa para prosse-

guir o processamento como se faz no mtodo "wa i t -for -f lag


e, consequentemente reduz-se a eficincia do programa.

Por outro lado muitas vezes nao e realmente necessrio, na.

entrada principalmente, obter o dado do meio exterior ime-


diatamente antes de us-lo. Pode-se entrar o dado e deixa-
lo em certa posio da memria, enquanto se faz outra coi-
sa no programa e depois vir busc-lo nesta posio, quando
e 1 e. s e tor n. ar nec e s 3 rio.

P a ra conseguir isso existe e sada p o r inte r rup- a entrada


a * 0 couce i to de interrupo
discutido no captulo 11 e ,

e aqui s ser vista sua aplicaao a entrada e sada.

0 mtodo consiste no seguinte .

Para entrada, ordena- se ao dispositivo que transfira o da


a
do do melo exterior para o seu registrador de 8 bits e que ,

quando terminar processo, pea uma interrupo ao Patinho


o
Feio, Continua-se a processar o programa normalmente, ate
o
ponto que for possvel faze-lo, sem ter o dado que queremos
i." D tr 3 I' v> G U v II 1. O XX "1 O V O X7 3 C O II C GCXdO TB G 17 17 p3o
1. C. j.
5 \\ X O. t li

pode-se executar uma instruo ESP , e deste modo, o Patinho


Peio ficara esperando um pedido de interrupo

G diiiposxti o b o a c a d a x a f a n h f e t e n c is o da o
-
pedir u m a
.
x. cl d. ,

interrupo. Supondo que esta esteja permitida , haver um


desvio parg a posio 4 da atiao ria onde deve haver uma rn- ,

t ina para tratamento da interrupo, que geralmente faz o


seguinte:
~ salva o estado da mquina, se necessrio;
- determina qual dispositivo pediu interrupo ( principal"
mente se se estiver trabalhando coro esse mtodo etn raai s
de um equipamento de E/S, porque sabe-se apenas que houve
interrupo, mas na o de onde proveio o pedido pode
nntt te r


sido ate do boto do oaineli };

:na s on :i ve Pata o p r o g x ama ( isto e arraaze


na -o numa posio conveniente ou no AC);

p Dos, o i) i o x. ni e o caso, st u a 1 i % a r c o tx f a dores e ou t r a s v


r ave i s dc p r ogr a m a

restaura estado da mquina ,


se necessrio;

--
volta ao processamento normal .

Quando dois dispositivos pedirem interrupo simultaneamer



t- necessrio escoihet u ni d c i s o a r a s e r t r a t a d o em
>
r p i

mei.rolugar. Geralmente, escolhe-se o dispositivo mais rf


do (no Patinho Feio, e a leitora de fita e, uturamente. .

ra o di sco ) .

P ara a s a ida anlogo , is t o e P s


, o meto d o e i n. t e r am ente a.
-

s u se o g ado
registrador de B o t do o AC (
s po s x
cl
para o i. cl .

tive e manda-se executar a transferncia para o meio exte-


rior. Prossegue-se normalmente o programa, ate haver uma in
terrupo do equipamento, quando este acabar a transferncia,
1 2 . i 0

Compreende- se facilmente qtre , coni este mtodo . a E/S


de d a d o s p o <1 e t o rnar ~ s e nru i t o m a i s rp i d a que c om o mt o d o de
wa 1 1 ~ t o r a g " t o tt t u d o , eie e mea o s y sad o po is ex g e mai s t e ro
po de prograwaao, necessria fazer uma rotina de trata pois e

mento de interrupo que pode, alojo disto, tornar-se bastante


extensa (dependendo do programa). For isso gera imente, imne- ,

de-se que seja pedida interrupo , e usa-se o mtodo de "wait-


for - 1 1 ag, ora o azer isso, sera v s t o em segu i da *

Fu n. oe-s dos f 1 i
p ~f_ 1. op s _ d o s__ e q u pamen t os de E / S

Como se recorda, do ponto de vista do usurio, todo


equipamento de E/S tem, alem do registrador de 8 bits, 4 lip~
1o ps, cu j a o ti 1 d ad e e des cri ta ah a i x o

I) f 1, p- 1 op de CONTROLE - como o prprio nome diz, controla o


funcionamento do dispositivo. 0 cont rol e Ligado e a ordem
para o dispositivo transferir o dado entre o registrador de
8 bits e o meio exterior ou vice-versa, conforme o caso.

Quando a transferncia termina, o controle e automaticamen-


te desligado;

2) flp-fl, op de ESTADO - indica o estado do dispositivo; se es


te f1 p-f top estiver desligado , o dispositivo esta ocupado
M
( busy ,
) com uma transferencia de dados; se ele estiver li-
gado, a transferencia acabou e o dispositivo esta dispon-
vel ("ready") . este flip-flop que se usa no mtodo "wait-
f or-f lag H para saber se ji cabou a transferencia do dado ,

Por t ant o , an t e s de 1 g a r o 1 i p-f 1 o p d e contr o 1 e, n c e s s 5


;
e.

rio desligar o f lip-f lop de estado para indicar que o equi-


pamento esta ocupado (
H
busy n ) . A seguir fica-se testando es
se f 1 p-f 1 op .

0 equipamento , ao acabar
a tranfferenc ia do dado, 1 iga-o au

toraaticamente e, ento, fca-se sabendo que ele esta nova-


mente disponvel ( H ready; e que a transferencia acabou;
1 , 1

3} f 1 p-f lop de PEDIDO DF IN TERRUPO ~ quando esta 1 igado, mart


da. um pedido de interrupo ao Patinho Feio (ver diagrama) .

Este f l p-f lop ligada pelo flip-flop 4e estado, isto 5 ,

quando aquele estiver ligado vai ligar este flip-flop taoi-


bem

4) flip-flop que PERMi FE t IMPEDE (conformo esteja ligado ou no)


que o dispostiv i faa pt dido do interrupo no Patinho
Feio. ndo itiliza n tt de E/S "v a 1 1 ~ o r - f i a a
es t f 1 if -
-
interr upo e s do d I s po -

sitvo de E/S.

' : i trada . da r interr >.i p, ao o

c< rre qu quando equij en to terniii a transferncia


do dado, automaticamente desliga o li p-f lop d controle c li - i:

g, a o de estado. Este, por sua vea, liga o PEDIDO DL l d T RR o P - t.

CA0 , s e o t p - f 1 o p P RM T E / 1 M E D t p e r m i 1 r
i 1 ;
qu e a p4c
1,
|.
,
, >
. -
; ;i

aceito. Ento o Patinho Feio passa a processar a interr u a


Ora, nao sc pode terminar a interrupo saspiiunen t coa a n s i

t rua o PUL pois o PUI. limpa o estado de interrupo do a. s to-


ma , mas nao desliga o pedido de int errup o que vem do equipa-
is e n to de E / S . I sso oc as i o a a. r i a nova interrii p o .
, nao d. es e }
a d. a

logo a seguir. Portanto,


necessrio desligar o flip-flop de e

pedido de iaterrupcao do dispositivo que. ja foi tratado an-


tes disso, ta bera o seu flip-flop de estado, pois ao cate per-
manecer ligado ira religar o pedido de interrupo loco a sc
gu r ,

Ver -se- a agora como fazer quando for usado o mo todo


da interrupo cora vrios equipamentos e mais de um pedir n- i.

t; er rupao ,
1 2.12

Como se recorda, o Patinho Feio tem apenas um nvel


de interrupo. Isto significa que, se se estiver tratando uma
interrupo de um equipamento de E/S e uts ou t ro p-e d ir in.te.rr u p

ao o pedido da o ser aceito antes do fira da primeira inter-


rupap

I sto su gere do mtodos para tratar estes casos;

a) Quando houver uma interrupo , testar todos os dispositivos


para ver qual ou quais a pediram. Tratar todos os pedidos
existentes, um a. um, e aps cada tratamento, desligar os
flp-flops de es ta do e de pedido de n ter rup ao do disposi-
t iv o t ra t ado Te r m i n a d o s todos os d i s po s . t i vo s , enc errar a
i ti t e. rru po ,

b) Testar os dispositivos segundo sua prioridade Achando um


que pediu interrupo, trata-lo Em seguida, desligar . os
f1 ip-f lops de estado e de pedido de i nter rup o desse ds-
po s t vo e encerrar a interrupo com o PUL Se houver mais
algum equipamento pedindo Interrupo , haver nova interrup-
o logo em seguida e outro dispositivo ser tratado.

Em geral , o mtodo a mais rpido , pois nao neces


sro cada vez ficar salvando e restaurando estado da mqui-
o

na no momento da interrupo, como e feito no mtodo b_. Contu-


do, o programa para e mais fcil de se fazer , e e menor
1 2.13

Diagr a ro a de B 1 o c o s_ do met o d o de entrada e sad a por interr u p *~

f
Comando ao dispo-
sitivo para trans
ferir um dado

0 dispositivo termina a
transferencia do dado
continua-se
e pede interrupo
processando
o programa

i
f
Rotina de tratamento
! de interrupo de
}

I ^ y E/S (a partir da

\
posio /004 da
t

i
memcr ia)
*

i
. - -j- ....

\
1

\
1

V \
t

)
s

retorno ao
programa
Observ a o ; No I possvel determinar a priori em que ponto
do p r o g r am a a c o n t e e e r S o p e d ido d e i n t e r r u p a o
12,14

Para finalizar este captulo, tera-sc a seguir , um


diagrama geral dos diversos registradores e f lip-f lops usados
para. comandar a E/S por interrupo e por M wait-or-lag" Ca- .

da quadrado e um elemento ( *' l p- lop **) de dois estados (0 e 1)

cujos nomes dependem do particular elemento . Flechas continuas


ind ic am fluxo d e in o r m a ao, F 1 echa s po n ti 1 h a das i nd cam n
'
fluncia de um elemento sobre outro

A seguir ha um diagrama lgico que mostra quando e


como Patinho Feio aceita um pedido de interrupo. 0 diagra-
o

ma usa blocos lgicos AND e 0R, explicados no captulo 2.

E v idea t eme nte, so um dispositivo d e E/S fo L f ?.


pt 6 s o a
tado no esquema, cuj a parte re fereute ao dis pos i t i vo deve ser
x e p e t i d ii pr s cada e qu ipamen to a se r a sdo

Atravs do diagrama lgico e fcil ver que mn; i ate r


rupao de um equipamento de E/S s e possvel quando:

o Patinho Feio ainda nao estiver em interrupo;

a interrupo nao estiver inibida (pela instruo INIB)

a ins t r u a o n a o e s t i v er i m pedida pe 1 o 1 ip-f 1 op i ne d e / pe


mi t e

e houver peddes de interrupo do dispositivo em questo.

t
I

O
T3
.O 0
Tj TJ
ctf

T5
O O
Tj T3
0
* r*
0 o
u Ci TJ
c tS
4) 00
Jn
Ci cd
M
55
c O
tQ O { so 0i
*- Tj yj
C3
D 0 o
t D i- > cs
U CH
d 4*
u 0
fg 0 C
00 4-* i-i
*H a> *3>
r~*- 4> o
ta Gi <U TJ
Q 0 !> O d
*0 V* * r"i

O P ' t-~4
T3 Oi
U ty TJ
r
O
5
.a a *r4
t)
O
e
TJ f TJ
O
&4
i*
M 8
a
3
O D4o5 s
r-J
,

Q d
T3 4-5 *d
,~4 (i
O \ d
c <L> TJ 03 >
o
*f-4

0
d *
Cy O O" <u
os i 0 TJ
P%
-o PJ
d a

d O <U
M G.
0
Gi
M O
TJ
o
r-4

g
J
"O H r
o 0i
m ca a.
0 m C oo O
Tj
160 13 n
tt
ft

0)
o 00
Qj
>4 O *0 a 1 r**4

Ml 03
45
;!U Q
00 M
*r* O a
r** J '0 W
O
P
00 O
TJ * >*4
ta ?t
fS
00
**

f
o O*
Cu
{*4

<r*-U T3
cs P
O
d
u
*1 u
o O rU 45
o <0
O Ui
Pi d
-4 H M H
/3 W >~4
W M a;

.3
S
0)
Mj *1 "d
0 O Qi
0.3

M 4J 4-i
4-

C3
a r^
,
d 3
Oi * f->
MJ
<tf
o 0) G
"O
5
T1 U
o O O O
'o Oj o m
H O
i
r"i
:

O*
'G U T3 Pu
< 3 <2
P V* d d
ff
<-*L O
*
O
o m
VS
.;

O o*.
Cl
O
'd *
u :j -H O
3 M P- T?
M M * s~4
N 0)
o CL
-M
a: u p
-u p u O
'-H
o *t-4
H
00
n>
-M
M
V4
G 04 53 <u
<U
*H
O u
~i i< G
rl 0 G M Ht?
g
l-i
, j4
10 </) U
fcw Q *10
l> u N G -U
P*
o *iO m
"J t< o &
tt
*5 d
c<i G ri
G ii D O O
i!

Ti
tti
* r* y
CT*H o II O
04 **-
fr m Cl Oi a. d
* r~ U O O
o g
J
-4 C: u Ti
*M XX d
1 C P W)
Cl "~ < H CO
-H
v^
-U
g a
XJ *4 a
;i
t*4 ft) 5
\

<i> M.) OP
P PQ 0
O h*
f.-*
O "**<

4 til 0)
O
O ">
rH Ui
M
r
p o
j

u-
5
H
W U JZ
u &
G ,
>5 *~
tf
H Oh i~l 4~?

r- j L d 0
O- H

o
?<Jj

o
O
cm
r-i
Q>
n
i d & **

Cd
~'Hpf a

I
3
w a

ss *o
g.
o
1 . 1 1

As instrues que mexem nos f lip-f laps de CONTROLE


h S> i A l) o ,
r 1 0 1 D0 e PBEM1TE / iMPED E sao ins tru o e s de E/S
, e serao
v s c as no p rxi ra o capI tu 1o .

P
1
i P r K B
1 e desligado cela
t- '
. i : ; i i.
instr u
eao 1N1 e ligado pela instruo PE? M uaptulo n).

O fiip f lop N AO ES TA/ ESTA desligado pelo Patinho


Feio, ao aceitar :.:ra imerri.;', e religado, tambm pelo Pa-
:
'

aterr ip io {instruo PULl

Ao ser apertado o boto "


preparao no modo etidere-
ram< n to i 08 ops
P t omaia
_ : .
. J ! 1 1 o s egu n e eon*
teuo

CONTROLE de s I igado
ESTADO 4es 1 g a. do
PEDIDO de s 1 i
g a. d o
PER Hl TE /IMPEDE i mp ed e
PKEMITE/INIBE per mi t e
NO estX/estS nao e s t a

eom isso, foram vistos os mtodos para realizar


E/R
no patinho Feio. As instrues para executar esses mtodos, bem
como exemplos sero vistos no captulo seguinte (captulo
,
13).
1 , 1

13 - INSTRUES DE E/S

r 'j i s ci. s . ns 1 ii
oes e E /S sa o 1 ong3s is o
.

s t e 7 o c u d a ib
duas palavras da memria. A primeira palavra comea com o hexa
d e c ta a 1 / C E x i s t e m q u atr o t i p o s de ins tr u o e s de E/S: F N c
,
, A L
SAI, ENTR.

0 operando -destas instrues S uma constante que


quando convertida para formato hexadecimal, e da forma /nc
o
011 de n indica o canal de E/S e c o comando (isto e, a ac ao
executar) , que o ultimo dgito hexadecimal da instruo, Ne
nh uma i n s t r u ao de E / S altera o s c o nt e u d o s d e V * T .

In s tr u e s F N C

Codgo de
Maquina Ins t r
u ao Descr ga

Cn 10 PNC / nO i) es1 ga f 1 p- 1 op p E RM I T E 1 MP E D E
/ pa ra
0dispositivo n (isto e , impede inter-
rupo do dispositivo n)

Cn 11 r' r C / ni Desliga flip-flop de ESTADO do dispo-


s i t ivo n ( E S TADO * " bu s y " )

on -1 1 2 FMC / a I-iga flip-flop de ESTADO do dspositi


vo n (ESTADO = "ready)

Cn i 4 FNC / n4 Desliga f lip-f lop de PEDIDO de inter-


rupo do ds po s t ivo n

F8 / n5 Liga f lip-f lop PERMITE/ IMPEDE para o


a isposx 1 - vo n ( I sto , p ermi te i nter
rupao cio dispositivo n) ,

Liga f lip-f lop de CONTROLE - e desliga


f lip-f lop de ESTADO (ESTADO = "busy)
do d i s po s i t vo n .
Codigo de
Maqu ina Instn ao i Is e s cxica o

Cn 17 PNC / a7 Desliga f lip-f lop de CONTROLE do d is


positivo n.

Cr 18 FiC /ti 8 85 funciona na leitora de fita ca-


nal /li Ignora todos os "f eed-fra-
mes" ("bytes" nulos) da fita, ate a
prxima perfurao (19 "byte" no
nulo)

Instru es SL: salta duas palavras se:

Codgo de
Maquia a In stra ao Pesciiao

Cn 21 SAL / ii 1 o f1 i p tio p e t. S TADO do d ispo s i t


vo n e s tive r liga d o .

o dispositivo n estiver 0 ,K. ( ver


observao abaixo)

Cn 24 o f lip-f lop de PEDIDO de iuterrup-


ao do d i s po s i t ivp a es t iver desli

Obs , ; instruo SAL /n2 so funciona para os dispositivos


5 , 8, E, de E/S

Dispositivo 5 ( impressora) ~ salta se houver papel na


impressora e esta estiver pronta para
imprimir

Dispositivo 8 (perfuradora de fita) - salta se houver


fita na perfuradora e esta estiver pron
ta para. perfurar ("on-line") ,
13 .

D spos i t v E (leitora da f i ta) - sa11 a, se estive r c o ta


a f ta a ser X lufi x ts ta 1 a d a e a leito r
estivei* '
'on-l i n e M ,

Nos o u | ros dispo s i t iv o s , na o saX ta ,

X astru a o _B N T R

C d igo de ma qu na /Ca 4

I n s txuc ao *
EN TR / n0

Descrio: Entrada tio dado do registrador de 8 bits do dis-


uostivo n para o acumulador

1ns t rucao

o ou r l' m s oh :
/ Cn 8(

i ns t r u so i- / nu

Dcsc r i a o : S ax c a do d a a o do a c u in u 1 t o r para o registrador dc


8 bits do dispositivo n . A seguir, liga flip-flop
de CONTROLE e desliga flip-flop de ESTADO { ESTA
DO "busy ") do dispositivo a , automaticamente (o
que causa a sada do dado para o. meio exterior).

Repete-se aqui a lista dos dispositivos em uso no Pa

B ti cl c rc o de E q u x p ara e n t o Tipo

Imp ress o r S21


SX f ct
Vi J-l

Perfuradora de Fita de Papel b ids

Le i tora de Car toe s Entrada


DECWRITER Entrada e Sada
Te1 epri n ter ( T TY Entrada e Sada
Le t ora de Fita de Pape 1 Entrada
Exemplos de E /S : (ver tambm captulo 12)

o r f 1 ag
!
a) *
wa i t -f :

a.l) entrada de um caracter na leitora de f ita(canal E)

FNC / h 6 iiga controle e desliga esta do


SAL /El.
se \ se nao espera o est ado estar ligado
acabou / - _y acabou liitn da transferncia do dado)
\ PLA
X
ENTR /EO entra o dado para o acumulador

a , x ) sada de um d ad o p e 1 a p rfu a dora de ita (cana 1 8 ) pe o


s e g und o m t o d o :

Incio do P r o g r am

FNC CO C4
liga estada {simula um aviso de
que j a a c a b o u o dado anterio r,
n ao h av i a I
q ti e

se acabou SAL /81^n te s ta estado ate ficar ligado


se nao
sai o pr /X"
k~ 2
i

acabou
xitno dado ;

\
PLA

SAI / 80 sada do prximo dado - liga


0 li T R 0 L E
e d e s 1 i g a ESTA D 0 au f
tomaticamente

h) interrupo:.

b,l) aceita um caracter pela DECWRITER (dispositivo /A)e ar


mazena na matriz A Alm disso, se for ma "F", soma um. *

ao contador CONT Se or um E " , imprime na TTY (dispo


,
<'

oiti vo / B) s usando 'Va t- or ~ Iag" - 19 mtodo (captu


lo 12) .
Pr o grama Prime i p a

ORG * * * *

CONT DEFC 0 valor iniciai de CONT

PNC /Al des ligaf 1 i p -f lop de estado do dispo-


sitivo /A* pois ele ligado vai 1 gar
o PEDIDO,
PNC / A4 desliga flp-flop de pedido de inter -
rupao
PNC /A5 p e r si i te in t e r r u pa o do disps it v o /A

PNC / A6 liga flip-f lop de controle da DECWRI-


TE R p a r a e n t rada d o 1 9 d a do.
,

resto do programa principal-

Rotina de Tratamento de Interrupo:

ORG th

ARM SAVE salva estado da maquina no instante, da


interrupo
EMTR /AO entra o dado para o acumulador
A.RMX A armazena na matriz A (indexao)

SOMI ~ #P
testa se P
PLZ . EPE

CARX A na o e P

SOMI - @E
testa se E
PLAZ EE

AQUI TRI
nao i E, Se I E EE CARI @>E
soma um imprime
INC SAI / B0
ao
indexador SAI /BI na TT Y
TRI.
PL 2
PLA AQUI
r\
CA R X U
r es t aura esta d o d maquina
S VE EQU ii -1

PNC /A 1 desliga estado

PNC / A4 desliga pedido


PNC j 3 X iga e otro 1 e para ii fr 3
't * . d&

PUL fira da interrupo

Se I P EPE CAR /A ur1 Ti


VVi !

INC soma um a CONT


RM A A K! *T

PLA AQUI
14 PROGRAMAS ABSOLUTOS E RELOCVEIS

Neste capitulo d seu t i


r ~s o - um conceito que aumenta
enormemente os recursos cie prograiaaao disponveis em um corapu
tador: o de programas receveis . fi um conceito puramente da
area de "software (programaao) , ja que no envolve nenhuma no
v a nst r u a o e x e c u t a v e 1 pe 1 a ma q u n a

P o r ou J: ro 1 ad o , $ utgem n o- v a s p s cudo as tr u o e s ( p a, r a
o ta o n t ad o r ) . que s er ao d iscut id as n o p r o x i m o c a p t ulo .

Examine -se, de incio, pequeno programa , que acei-


ta caracteres da BLCNR1TFR (.di positivo /A) e perfura-os numa
fita de papel (disposii ivc /h) 3 at encontrar uma vrgula , que
indica o fira dos dados e na o perfurada.

A a
f> / f n
ja.ii ca o endereo onde comea-se a arma
cenar dados ou o programa.
INI PNG /A6

SAL / A
/ n *t
a.

le caracter na DEC ( "Walt f ot -f iag


PLA

UTR /AO

ARM DADO e guarda em DADO

SOMI -

C b ta se e um a vxrgu 1
PLA?: CAB

CR DADO nao e , por t an t o

SA I / 8 0
M
p er ur a o ca rac ter ( W a i t-for-f lag"- tn -
SAL /8 1 todo 1) (captulo 1.2)

PLA *-2

PLA INI e vai ler prximo caracter.



i.

CAB PAR c a r c t tt r 1 i do G , (fim do programa)

DADO DEFC 0 Po s i ao pa ra a r ma a e ar c a r act e r 1 id o

F 1 I N 1 end c r e e o de i n c 1 o ti e exee u ao do pr ogra


ma

Ao olhar o prograna nr ima, escrito para o montado r

absoluto , p o d e -se notar u i


-
fa ; i v. t e r o s san t . A or i g e rn / 4 ? 2 n a o
- enor iaflu n< : to rog rama. 0 que ocorrer ia se
Eoss por ~
* OK RG / 472 ?

*carr na r a do; locais fsicos 4


memria ocupados pele gra f une onamento conti-
nuaria exatasente igual, corruto,

a no oaiiO, por :<cmp i o , -J e os later rupao , a roti-


i ra t issanto c o r r - s po nd o n l e si o v' a c om c o ar , o r i
gy to t aitipi t c
na posi s - - s- o i
, Mo z o r . o corto o programa se fosse
colocado a partir de am a ou 1 1 a po & i s o qyaI <( ue r .

Re to r n a nd o ao p t o g r a ta a - e x e m pio: e u nt a b oa i dc i a a-
zer cotn que* a origem torne -ac
por enquanto, indef inida. pois ...

ela na o e essencial ao programa Para no se confundir nas ns ,

L r ti o t s <3 o prog rasa, st ri bu i. se C ar b 1 1 r a. r i a ui a n t e ) a pr i. ni c x a- os


lavra do programa , o numero zero numera-se as outras pala- c

vras rclat ivamente ao inicio du programa. Fca-se ento, com ,

a seguinte numeraao ( lembrando que as instrues longas ocu-


p ain duas p a % av r a s ) :
14,3

N umcr
h <: x a d e c i ib a 1 ) I astr gao

000 INI FNC /A 6

02 SAL /Al

004 P LA *-2

(106 ENTR /A0

008 ARM DADO

00 A SOMI - (b

000 PLAZ CAB

00E C.AR DADO

0 1 0 SAI / 80

012 SAL /SI

0.14 PL K2

01 6 FLA IN

018 CAB PARE

01 DADO uma p a 1 av r

0 numero chama-se endereo relativo (ao incio do pro


g r ama ) da ins t r u ao

Tem-se a seguinte tabela de smbolos e seus respecti


vos ende r e o s r eJL at v os :

Ml 000
C B 018
DAO 01 A (DADO, truncado para 3 letras)

Alem disso, na instruo de endereo relativo / 004 ,

que FLA *-2 , o operando *~2 refere-se ento ao endereo rela

tvo /0 02,
Analogamente , na Instruo /01 4, o operando *~2 re-
f ero-s e ao a nd v r e o re 1 a t ivo / 012 .

0 programa sia agora cm urna origem "f lutuaate" , is


to e 3 po4c - se a tr i bu . r qua 1 qumr va L o r a a o r igem ,

isto foi to, a instruo FNC /A6 ter a endereo absolu


to (ou seja. endereo cta posio t sica da instruo na taemo-
r i a) gu a 1 a a i SAL / 1 tera e nd e r e o ab so 1 u to a + 2 ; PLA *-2

c era e n4 e r e o a bso i uto ;* a 4 , e as s m pox d i an te .

i.irre,

tiiucn ru roiati v o s dos smbolos, decor
reta Lmediatai ree< olutos correspondentes

j K I ct + / 000

CA f /0 18
D AO u + /O IA

s. s * a agora torrai nada a transionssf so do pequeno pro~


g r a ra a - o
;
1. o , de a b s o l_u t u e ffi r cl o c a v ti 1 > i st o , qye pode s e r

mudado 4c lugar dentro da memria.

V-se, ento, que a conceito de programa r elo cavei e

b em k m p 1 es . Qu as u e ffi ra u d a a as ao p r o g r a ma , e1 e foi tr a tt s f o r -
ar ado eu relenavcl
cio montador relocSvnl e agora pre- , A funo
gar este programa -fonte transform-lo om ura cdigo de iniqui e

na, com os endereos numerados relativamente ao incio do pro-


grama, come aqui foi feito. A sada gerada pelo montador relo-
cavel ainda nao c executvel pelo computador, por causa do fa
to de o endereamento ser relativo. !i necessrio ento mais ura

passo, onde um programa (chamado carregador relocavel ou rei oca


dor-1 igador) pega como dados a sada do- montador relocvel e

uraendereo de origem, que pode ser d ade* pelo programador t e cal


cuia todos os endereos absoluto;;., gerando ento por sua vez, '
,,

o cdigo de maquina j a em formato executvel (ver tambm o ca-


px f. uIo 16 > .
Se a uni c a a p 1 caao do conce i to de xe1oca 3o f oss
esta que acabou de set mostrada ao progrsaa-exeaploj ele n o
seria tao importante. Mas, a verdadeira importncia da te lo ca-
o ser a vista a seguir, quando forem vistos novos conceitos e
a p 1 ica o e s d a r e 1 o c a a o .

T ip os de P o gr am a s

c o n s der e s e gora n a o u p e q u e n o p r o g ram a c o rn o


-* a. , no
exemplo dado, mas um programa enorme, talvez to grande oue
nao caiba na memria. ento muito conveniente, se no mesmo
imperativo, dividir o programa em varias ro tinas cada uma fa- ,

zendo uma ou virias funes do programa original e executar ,

ima de cada vez. Evidentemente, 5 necessrio, ao passar de uma


rotina para outra, levar ea conta o trabalho ji feito. na
destruir o que ji foi calculado.

Q u a o do s e t a z a su b d v i s a o i nd ca a a c i a , o b t om - s e
<5

rotinas, que tem vrios nomes , de acordo com a funo que des a.

t i n a m ou o mo d o e o m o s a o e n car a d as; pro g r a m a prin c ipal s ub r o - ..

t i ii a e 8e g m en to .

Programa Principa l como o prprio nome diz, a par-


5,
te principal do que se quer fazer a parte do programa
. f,
que
controla a sequncia de operaoes a serem executadas. Por exem
pio, o prog raminha feito no incio do captulo S um programa
principal que, no caso, e todo o programa
,

Evidenteroente na o pode haver mais de


, um pr ograaa
principal num conjunto de rotinas a serem executadas,
Po s so
uma rotina pode controlar todas as outras
Subrot ina e uma rotina subordinada a um outro tre-
cho de programa. Em geral , a subrotina bastante menor que um

programa principal ou segmento , e cha mada viras vezes duran

te execuo , de vrios locais distintos do programa Aps a


a .

subrotina fazer seu trabalho, o controle, retorna ao ponto de


onde proveio a chamada . Alm disso, nada impede que uma sub-
rotina chame outra ( subrot inas encaixadas)

Exemp 1 o
Programa
Pr ncipal Subrotina 1 Subr o t i & 2

~Z

P r o g r ata a Pr i n c i pa1 c h am a

Subrotina 1 2 veze
Subrotina 2 1 vez

e subrotina 2 chamai
subrotina I uma vez

Naturalmente podem existir tambm, subrotinas dentro de uiaa di


,

viso do programa, executveis por uma instruo P 0 (cap5) ,

Aqu esta-se tratando, contudo, de subrotinas que so montadas


separadamente, e que sao independentes das outras unidades do
programa, podendo, inclusive, serem aproveitadas em vrios pro-
grama s ,
e s e d s p u s e r d e um & b bl io t e c a de subrot inas d e s s e
,b

tipo, que executeis varias tareias frequentemente


< c omo o p e r aco e s at i t me t e as , o p era o e s de E/S , p r e e n c h i m ent
de Sreas da memria com zeros ou outro valor, etc), o trabalho
de fazer um programa pode ser bastante reduzido.

Ai era disso, a diviso de um programa em varias sub--


rotinas, apresenta a. enorme vantagem de cada uma. delas poder
s er corr i g d a e m e 1 h o r ada, ndepe n d e n t e m e n t e d a s o u tras.o
qne
acelera e facilita muito este trabalho, 0 mesmo se da coai os
segmentos , que sero vistos logo mais.

u programa principal bem leito e bem estruturado po

de r ento consistir s quase nada rnas que uma sucessiva cha-


mada de subrotinas , cad uaa para executar uma diferente tare-
i

bm Segmento o unia rotina que- apresenta carac ter s t


cas tanto de programa principal como de subrotina um trecho .

de um grande programa, que e executado , em geral, uma ou duas


vezes, e que, de costume na o e chamado de outro ponto e nem a
ele retorna Sua execuo se da ao terminar o segmento
.
ante-
riot-e quando termina , passa- se ao prSximo segmento Em geral, .

usa-se era grandes programas quando o programa principal e res- ,

pectivas subrot mas cabem simul taaeaaente na memria


tia o
Na- .

t u ral m n te, seg me a t o


p o e cham a r s u b r o t nas
um se ne c essa - ,

rio, e ao seu termino, o controle volta ao ponto de chamada no


segmento

Note se que nao e necessrio haver ura programa pr in


eipal: pode-se substitui-lo por vrios segmentos .Comea-se se ees
x
curando o 19 segmento ao t errai, ai -Io passa-se a executar o 29
;

segmento, e assim, por diante, ate. acabar a execuo do ltimo


segmento do programa.
For outro lado, pode-se ter uns programa cujo proces-
samento pode seguir por vrios caminhos, dependendo de condi-
es que s ocorrero no instante da execuo Se, para cada .

ocorrncia, o processamento for bastante longo , pode ser couve


iitute az o jr u tu s o g tu e n t. o par a c ao a po s s ive 1 ocorreoc xa e. tsm
programa principal que identifique as ocorrncias e controle
ento a e x e c u ao d o a e g a- s n t o c o r r e s p o n dent e .

P a g r a tu a c- s q u e m -a t i co :

pr^graaa (tudo o que se quer fazer)

[a r ia cio Pa fcinho Fe I o

D v
i. 3- d indo e ro var a s par t es l

Programa
Vriac i pa t

s e gffl e nt o 1 s ubr ot i n a -I

f segmento f s ub r o t i na 2

s e g e n t c Ui su brotina n
Des t e ai od o 3 com a cec ni c a de se g ia e n t a o co nscg r -
i.
,

se -a executar tudo o que or g naloeate era desejado o que de


outro modo no seria possvel . Somente uma jparte do '"prograraao"
estara na memria em um -dado instante por exemplo o propra

ma principal ,um segmento algumas subrotinas 0 resto estara f- .

armazenado em algum meio externo; por exemplo, uma fita perfu-


rada de papel ou, no futuro em um disco magntico. ,

T pos de v aria v e i u e_ ende r e c o s

Pode-se notar que, devido maior complexidlde dos


mtodos acima em relaao aqueles do montador absoluto,' S neces
s a rio um c u ida;! c ben ma i or no t r a t a m n to de v a ria v e is , para
no haver, acidentalmente perda de informaes Por isso exs
, .

te ja usa diviso dos variveis e endereos de acorda com o ,

s eu t p o , confo r m e s c r v i s t o a s o g u i r E s s a d i v i m o a 1 cm dc .
,

sistematizar tratamento das variveis facilita a compreen-


o
so de varias caractersticas da rei o cao e simplifica a elo-
boraao de programas

As variveis, rotules (identificadores) smbolos e ,

endereos que podem existir num programa relocvel, so de um


dos seguintes tipos: absolutos, re locveis, pontos de acesso,
externos e comuns (do ingls "cominou 11
) .

Um endereo absol uto e coso o prprio nome diz, o s

endereo de uma posio fs ica, (real) da memria. Ou geia no


e uma posio numerada relativamente ao incio do programa
5 mas

siffi ao inicio da memria. Mesmo que o programa seja posto e.m

vrios locais diferentes na memria , um endereo absoluto re-


ferenciar sempre a mesma posio fsica da memria

0 sei ivor exemplo para


o que foi explicado acima e o
indexado r .quiser conhecer seu contedo. Cera- se que ende
Se se
rear a posio / 000 da memria, qualquer que seja o local onde
1 , 1

tor armazenado o programa relocvel Se st* tiver por exemplo .


,

a instruo CAR 3.1JX, onde: smbolo que suef esios


XDX easso
o
ciar ao iadexador , tem-se que conseguir que IDX se refira a po
s i ao a b s o 1 u fc a / 000 da ta e mo r i a , e no , cv d ente m e n t. e , ao ende-
reo zero do programa relocivel (la. instruo) , que ocupara
uma posio ainda na o determinada na memria.

nas con trapos 2 a, e * um endereo rei o cavei


aquele re~
1 - ' uo ao inicio do programa, cuja posio final absoluta na
e

memria uepunuct a , toiiS tardo, da or xgttn associada ao programa-.


Ag variveis re locveis (ou seja, associada:-: a endereos re lo-
cveis) sio varaveis 'locais, no sentido de que sS "valem" der.
tro da unidade cio programa (sub retina, segmento ou programa
prxnpal ) em que se estiver trabalhando. Urna ves que se tenha
comeado outra suirotna ou segmento, as variveis relocve is
de outras rotinas do programa no sao mais a ela acessveis

Nao ha dificuldade ca
eta exemplos de va- st pensar
r i av e 3 s relecaveis, pois constituem a maioria e ias, em gerai,
das variveis encontradas numa unidade de utn programa No exem

pio apresentado no incio do captulo, todos os smbolos sao


r e 1 o e v eis.

Os smbolos globais externos permitem a uma rotina de


um programa ter acesso,, por nome, a variveis definidas em ou-
tras rotinas, tambm permitem a chamada de subrotinas no n
e

ciuldas na unidade corrente do programa. Tratam-se de smbolos


que, e m h r a r c f e r e a c i a d o s e m i nstr u es d a u n i d a d e c orre n t o
progr ara a e s 1 a o d f i n ido s e m o t r a u nidade e n to necessiri o
,
<? . .

dizer ao montador relocivel que se tratam de smbolos externos,


caso contrario, ele vai procurar a definio do smbolo na uni
dade atual do programa e nao a encontrando vai dar a mensa- ,

g em d e er ro ; " s mb o 1 o i nd ef i i o" .
Os smbolos externos tambm sao usados na chamada de
subrotinas e execuo de segmentos , da seguinte forma; na ins-
truo PUC <notae> ou PLA, <nome>, <noiae> e smbolo externo , in
dcando desvo para uma posio que na o se encontra na atual
rotina

Os po ntos de acesso ( "entry points) so justamente


os locais de uma rotina para nq.de se pode efetuar ura desvio a
partir d < uma outra rotina . Eles marcam posioes dentro de uma
rotina , e por isso rc. une referem-se a endereos te locveis que

fio am iceutif iesde : uomu do ponto de Vf ; , .

suponha se que ura a subrotina c tramada 10


realiza entrada
salda de dados. Ela pode ter por exemplo
m
, ,

s ifiUi : l setrada, um chanado DECE para entrada de dados


la er, charaadc DECS para sada de dados pela
IXwriter , e s
por iv,>. ura chamado LOP para entrada pela lei-
tora de fita.

subro tina

j i
HO

f DECE -
pontos de j

< DE CS *

tf*

a cesso


LOP 1

Quando s de uma outra rotina se quiser efetuar uma en-

trada de dados pela leitora de fita, far-se-I um PUG LOF 5 e des


ta forma comear -se -a a subrotina 10 diretamente pele? ponto de
acesso L0P ao executando as instrues que veta antes e que
s

na o noa interessara. Evidenteaente, LOP deve ser declarado ex-


terno ti a rotina que e hasta, pois so esta definido eia outra sub-
ro tina
14.12

Por fim, uma varivel 'co aaoTi " e uma varivel comum
a varias rotinas, isto uma posio da memria que pode aer
, 5

referenciada e ter seu contedo alterado por vrias unidades de


um programa . Era contraposio tem-se as variveis relocveis ,

que s podem ser acessadas de dentro de sua prpria unidade

Em geral usam-se em um programa , vrias variveis


comuns ( "coromon 51
) que sao ento agrupadas em uma rea de va-
riveis comuns Bote~ae que as variveis da rea comum no tem
.

obrigatoriamente o mesmo nome nas vrias rotinas que compem o


programa, embora se refiram mesma posio de memria. a.

As variveis (inclusive blocos, ou seja, matrizes)


que se quer colocar wr declaradas com os
r.-a area comua, devem
respectivos nomes em cada iaaa do programa. Nao e obrigatrio
que o com pr ita en to da area comum (era numero de palavras de raerao
ria ocupadas) seja igual em todas as rotinas , mas e necessrio
que o maior comprimento de todas as reas comuas declaradas se
ja o do programa principal. Ho i permitido em uma su br o tina
ou segmento declarar uma rea comum de comprimento maior que a
do programa principal. A razo para isto ser vista mais tar-
de (vide divis o da mem ria )

Os esquemas abaixo facilitaro a compreenso dos coo

ceitos de varivel comum diviso da area comum entre as vi-


e

ras variveis e seus nomes nas rotinas.

area comum

7 todo s p o d e m ta e x e r n a s v a r i ave i s
da area comum ( uma regio da
memria onde todos os mdulos
p o d e m t e r a c e s so) .

\
segmento programa subro- su b ro~ s ub ro -
p i nc p a 1 ti n a 1 t i aa
-

2 tina 3
14 i
q

No esquema abaixo, V varivel B * Bloco (matriz ) f

a na vertical esta o nome dado a varivel ou ao bloco na res-


pectiva r o t na .

Xreas te locveis (regies distintas da memria ,

cada uma contendo o cod go-ob j eto e as varivel


locais a cada rotina)

P r o g r ama Fr| nc pa 1

Subrot sa um

3ubro t i na doi s

At e a Cu muni ta rficsraa regi ao de mepio ria para todas


as rotinas, mas dividida diferentemente em cada
uma delas, conte as variveis declaradas como
sendo comuns)

*
V V V B P r o g r mu a P r i n c i pa 1

PIA KXC ABA UTX

1
Subr o t i na u ta

FlfJ
A
areas nao declaradas

V
Subro t i na d-iis

I1M IBS
Como se pode notar, a Srea, comuta foi dividida nas vi
rias rotinas de modos diferentes, embora isto na o seja obriga
to rio. Assim, por exemplo, as variveis PIA, KTC ,
ABA e parte
do bloco UTX do programa principal, ocupam as mesmas posioes
de memria que o 'bloco FU J na subrotna um Ba posio de me-
mria colocada na Srea comum no programa principal sob o nome
de ABA , na subrotna 2, conhecida sob o nome de ISS , pois 5

como ISS que eia foi posta na Srea comum, na subrotina 2,

Alem disso, existem partes da Srea comum completa ,

que nao podem ser referenciadas d retamen te nas subrotinas 1 e

2, simplesmente pot nao t si ea ido declaradas. Podero, tal-


vez ser referenciadas co um deslocamento,

Para aplieaao dos conceitos vistos e dado o exemplo

abaixo, coas esquema geral de uma subrotna que calcula o se-


o
no de USB angulo x em radianos,

S .!
p o n ha ~ s e que e s t e j a m d i. s p o n t v e i s dua s ro tinas :

- FLOTA , que soma oti nubtrai numeros em. ponto f 1 ute, com os
i

respectivos ponte AD e SUBT, Dados em A e B, res


1
1

pus ca em C, e ao altera os valores de A e B *

- FLTB, que multiplica ou divide numeros ent ponto flutuante ,

com os respectivos pontos de acesso MPY e DIV , Bacios em A e


B ,
resposta em. .
C, e nao altera os valores de e B,

Es cas subro t i n as sao n eces s a rias porque o P a t i nh o Fe o


s ma ti e j a n ua e r o s inte ros de -* 128 a +12 .7 . P o* tanto p ara se

usar numeros reais { "ponto flutuante) necessrio escrever


vrog r am a. s adequado s .

Sc r a u sada a s e gui n t e a p r o x i m a. a o :

x3 + x_
::

sen x x
3 ; 5
i 4 1 S

U 6V S6

od t cr o va 1 or d& x a co 1 o c a.*~ 1 o ria po s i a o


7
mu 1 1 i p 1 car x obtendo x
- multiplicar x por x* od tendo x ;

diviit x 3 por
. . . . . .

- 6 ;

- sub trair de x;
- mu Itlplcar x " p o r ;
v

- dividir por 20 :

~ somar ao resultado anterior ;

-
voltar da subrotna,

S era o colocaass na ares c o sn um as v ar iveis , B ,

X SIS, pois sao mexidas por diversas subrctnas.

Sequenc ia do operaes a efetuar ( lembrar-se quef.


denota o contedo de uma posio);

1 Q i colocar x na posio X ;

29 ) colocar x em A e em ;
> calcula
c6 '
ei subrot iria FLIITB no o d* r - f v2
<? i' -
p e xit. i ri c cl. ei

MPY (PUC MFV)

49 ) C

3
5Q } PUG MPY x )

69 ) pa s sar a para a posio Xu0 , para uso pos teri q r


passar s x3 9

'
p ta po ia o ;

co toca r* a constante 6 em n
j

x~-
q
Jg*
1
/ PUG D I (
** **' 1
cu J. a **
)
14 , 16

v3
109) passar C * -g~ p a r a a posio XT8 par a u s o pster I
i, o

119) pas sar X para A;

129) passar C para B


3
139) PUG SUBI
(cal cola x
%
3
~~

V > *

149) passar c x - -7 para TRM* para. u ao p o s t e r i o r

159) pas s a r XDO - x para A;


x3
3 69) pas sar XTS = para B;

17 9) PUG MPY S

K
j
189) pas s ar c ~ X para A
.

s
b

199) co1ocar a constante 20 em B ;

2 09) PUG D IV f

__
D
passar
219) C TT para B ?

3-
X
2 29) passar TRM 3 x para A
-

239) PUG ADO :s

249) colo c a r c = x T 31
+
>:
5
es SIS Co r e a lta d o ) ;
5
259) tu da subrotaa .

E video temente,
o pontos de acesso A D D e SOBT de FLU-
TA e MPY DIV de FLUTB , d^vem ser declarados externos na rofc
e

na que os esta chamando,

A s va r 1 1v e i s m vrr~. o n & d as s ao v a r i av e i a i ^ a USE 0


. de estrutura loeion mas fisicamente elas vod r*
;
cgraasa) ,

neto. a, varras palavras da memria, pois representam numeros em


ponto flutuante,

V-se clarasente nj exemplo ac ima como, mesmo progra


mas simples , ficam grandes ma linguagem to prxima a da m-
tu

quina, e tambm como o programa quase nada faa a no ser cha-


ma r s u b roti na s. Is t o s em conx ; c as "su b ~ su br o t si as*' a ecess r i a s
para mover os dados de lugar (pois sao constitudos de varias
palavras) e para fazer FLUTA e FLUTB

fcta-se que t j que tanto FLUTA coro FLUTB mexem nas


mesmas posioes de memria que esto no incio da are a comum, '

e necessri o f ic ar tr o c a ti d < > de pos 1 ao os va lo res e a 1 c u 1 a cl o s e

novos argumentos de funes para realizar a comunicao entre


as subrotiaas , Uma alternativa para isso e usar endereamento
indireto (captulo 4 e 5) na subroti na e passar, em vez do pr
prio valor numrico da varivel , o seu endereo . Para fazer is
s, usa-se uma outra subrotna que j esta pronta chamada ENTE, ,

cujas instrues de -so de '.era ser consultadas. Exemplo;

Frog r ama __ P rinc i paf Subroti n a

var svei etide r e ei va o r v ar ve 1

/ 42 5 M
( du as pa lavras

Passando o endereo de A para M, es ta toma o valor /04 na pri-


meira palavra e / 2 5 a& s e g u n d a. pa 1 av r a .

Se se tiver agora, na subrot na,, as instrues

1ND (ender e a m e n t o i nd i e to

SOM M

ser somado /AB que e o contedo de A Deste modo, no foi ne


cessar io colocar A na rea comum Este mtodo e o geralmente .

empregado para. -passar poucos argumentos de uma rotina a outra,


Para ao; numero grande de a: gnaucnfo: s c prefervel usar a Sr o a
c o si uni
o i V X 6 1o da M em orj_ a_ entre as varias rotinas; lgaao
o

Quando se termina de realizar a montagem, dispe-se


de varias fitas-objeto, cada uma com uma rotina em formato re-
Iccvel. A estas juntam-se , eventualmente, fitas provenientes
da biblioteca de programas. Fica-se, ento, com usa pilha de

fitas contendo um programa principal, su br o tinas e segmentos


com rea comum reservada Surge ento a questo de como. colo-
eS-los na memria, pr inc i palment e se o programa completo no
c o u b e r n a mes m a

A alocaao de memria que geralmente se usa e a se-

gu nte :

! DX EXT j
ERI ;
ERI RT1

- ,1

"CMMON

PROGRAMA
PRINCIPAL

SU BROUN AS

i
SEGMENTO

S BROUN S ?
LO DER

toem o r ta
p rot eg ida
(captulo 16 )

IDX - indexado r (posio 000)

EXf * extenso do acumulador (posio 001)


ERI E ERI * endereo de retorno de interrupo (posio 002
e 003)

RTX incio de uma rotina de tratamento de interrupo (se


houver)
0 comprimento da rea comum, aquele declarado tio oro
grama principal Por isso nenhuma subrofcina ou segmento pode
ter area. comum maior, porque seno essas posies avanariam pa
ra dentro cio programa principal & destruiriam informaes va-
liosas

N<:- incio deixa-se na rnemr a a area comum, , o pro~


s : al as sul rotinas chamadas por este, alem das
'
5 u b - c u d roei n a s '

( a q nelas a h a m a -d a s p e las s u b r o fc n as), s egu r

cl-- uma rc^iac r serv ada a c segmento e suas su br o tinas , que


conter ,
d e- caca vez, um segmento - o que estiver sen d o execu~
qut -
-
tos na o cabero na memria,
ci a de uma dada subro
I a ts ra . ..
s
tina necessria na 'memria em um instante, mesmo que
e se ia
chamada de diversos pontos itras s rol ias e seemeutos

L_i gaao

Sera n e c e s s rio az e r a li g a ao a o t r e a s v* Sr ia s un-


d ades do programa calcular os endereos ou seja por exemplo,
absolutos de posies externas referenciadas era uma das unida-
des do programa, que depender- o dos locais fsicos onde forem
postas as rotinas onde esses smbolos foram definidos

Para executar estie trabalho existe um programa cha-


mado relocador-lgador , que gera uma fita binaria em formato
absoluto, ou seja, ji execut ivsl pelo Patinho Feio, a partir das
fitas co m o c 5 digos re1o e l ve i d as s u b r o t i a a s, progra m -font
e s e gm e n t o s { v id e t ato beta o : ap 1 u 1 o 16) .

Sistema Monitor de Disco

Como se observa, *rtroduao dos conceitos % relati-


vos i relocaao de programai aumenta enoneaente os r e cursos
14 . 20

dc p r og r ama a o , e mb o r a no i n cio s ej a, ais e oiap 1 i c a d o do qae


os pr o g r ama s a b s o 1 u Cos

Quando, no futuro, o Patinho Feio dispuser de ma di


co para armazenagem de dados, sara possvel, com os tafcodos de
relocaao ,
implementar um sistema monitor de disco, que se en-
carregara de armazenar os codigos reloeavexs provenientes da
montagem diretamente no disco e a seguir realizara, automatica
mente, a relocaao e ligaao das rotinas do programa. Isto ev
tara o atual estagio intermedirio onda os cdigos relocveis
ficam armazenados em fita de papel perfurada
15 - PSBUDO-IHSTRES PARA O MONTADOR RELOCV E L / ASSOCIAO
DE TIFOS DE VARIAVEIS A OPERAWDO S DE INSTRUES DE REFE-
R Sfr Cl A. I MEHdRIA

Neste captulo sero discutidas as pseudo- instrues


para montador relocvel Me ter se que na o so novas
o , instru-
es para a mquina, as apertas para o montador (por isso sao
h a m adas pseu d o -inst r ue s )
c. 1 s t o a p e n a s r a f 1 ete o fato de
a
M co-
reloeao ser um conceito puramente da ar ea de sof fcware*' ,

mo ji foi dl co no captulo l.

Todas as pseudo-I nstruoes disponveis no 'montador


absoluto existem tambm to montador relocavel embora as ve- ,

g r um pouco dtttftSiti O- 1 etti


: . is so 6xI s t . cl ni

ainda novas pseudo-xnstruoes .

C omb a r- s e-a v e r d r c omo se identificam os tipos de


^ i m bolos e c o ns t a n t e s no t o a tado r re 1 o o a v e i .

Como se sabe, a diferena entre programas absolutos


e reiocves aparece apenas quando ba uma referencia a memria
(endereo), pois nos programas reiocves a maioria dos endere
os so relativos ao inicio da rotina, embora possa tambm ha-
ver endereos absolutos ,
alem de pontos de acesso, endereo ex
t erno e v a r i a v e i. s n a x e a c o n u * *

Torna-se ento necessria ura a regra pela qual o mon-


tador relocavel possa deterniaar de que esporeie de endereo se
estS tratando Para isso es t&u eleceu-.se que ope raados
- validos
so os seguintes (consultar > diagrama de precedncias , no ca-
ptulo 5 ou ao apendice);

a) < smbolo ~ referencia o 'adereo correspondente ao smbolo.


0 s rab o 1 o e d c m e s o tipo q u e o en e r eo r e f er i

do .Exemplo : '
e o endereo for relativo, o smbo
lo relativo
b) smbolo <sinal> <desloeamento> * anlogo ao anterior mas ,

ao endereo referenciado pelo smbolo soma-se ou


subtrai-se (conforme o sinal) um des loeamento (da
do em numero de palavras),

c) < endereo (constante) ** e um endereo absol uto na memria,

d) * -lo endereo da la. palavra da prpria instru-


o que te esse operando . Portanto , sempre re-
1 o c av e 1 .

e) *-* * e uma outra forma de enderear a posio' absolu-


ta zero da memria (ndexador)

f ) *<*ina.l> <es loeamento ~ e sempre um endereo relocvel

correspondente ao endereo da la. palavra da ins


truao com um d e lo e a m a t para mais ou para me-
nos ,

g) <8ina,l>~ 6 o endereo correspondente S instruo rotulada


coa ma % s prxima da instruo a tual para cima

(se for ou para baixo (se for . + ) no progra


ma . s erap r i r e 1 ocvel

h) , <s i nal i^> <s ina 1


2
> < d es 1 caiaento * tambm relocvel; e o en
1 ,

dereo refert nciado como no item anterior, acres


eido ou diminudo (conforme o & n a 1 2 ) de um des- i

locamento (em nmero de palavras)


um dgito
i) < i na 1 > < h e x ade c i m a 1 * r ei e r e ~ a e ao e cl er ee o ( s emp r
(N)
re locavel ) da ins tr u ao d f s t a
te de N pontos pata cima (.-<H>) ou para baixo
( + <N> ) da ns t rua o atual, N I um dgito hexade
c ima 1, s em / n a r en e t: .

obtido a par t i t d0 a a t e r or, a p 1 i e a 0 d 0 -* s e ua d es


1 o c ame rito par a a frente, ou para trs (de acordo
COH o sinal 9 ),

Ixemp los:

1 ) Supondo qu e PTU rei e ren c ie 0 = n afeo rei 0 cave 1 /02 . A##


o e ti e e o abs 0 1 u 10 / 9A 5 , i" P 0 3 0 a ex t er no , C TN t e nh a e nd e --
teo /00A rela t vo a 0 i n1c i ;
da 35 ea comum, e que a a. tu a1
ns truao do p 1 0 g r a m a t c nb s u a p r i m e ira p a 1 v r a n 0 eu d ere-
o r elocivel / 1 0B t es- s e

<operando> endereo referido e ti 00

PTU / 02 A r elo cavei

A /9A3 ah s0 1 u 10

PPO *** e nd e r e 0 i u a 1 depende


e Kt (0
ta da ordem em que as rot nas
fores processadas pelo carre-
gador abs 0 luto)
CTN /GOA comum
PTU +5 / 0 2P t e 1 ocv e

3 / 9 AG abso 1 u to

CTN+/F /0 19 OSBUSl

/ 27 B / 27 B a b s 0 luto

~k
/ 1 0B re 0c Iv e
<oper ando> e nd et e referido e tipo

/QO ai s o1u to

*+/F / 1 1 re lo ca? e 1

*-10 / 0FB re 1 o c v e

endereo
Endereo Reloevel < opera tuio > (todos r e
locveis)
OAl CAR ....
. /OAl
4

. + / 1FF
1A2 PLA <operando>
.- + / A '
/OAB
*
,+ + 12 / 2GB
1FF . SOMI /

, +i / 208

, + 2-2 / 2 06
208 . TRI
*
. +2+ /AO / 2A8

Ro t u1 os "labei s )

Os rotules que servem par dar um nome a uaa posi


ao de memria , podem se constituir de 2 tipos: 19) ua smbo-
lo; 29) utn ponto . As regras para se determinar a que tipo
de endereo um dado rotulo faz referencia so dadas pelas ps eu
do-ins t ruo e s do mo n t a d o r r e 1 o c v e t

Ps a u do-I n s cr u o e c.

(Obs : na o e mostrado a seguir, o campo de comentrios 03 S

pseudo- instrues qu c-
p o d e. exi s t i r ) ,
Na segunda linba de^qualquer programa r elo cavei (lo-
go aps linha de controle vide captulo 16) ob rig atrio
declarar ao montador que espcie de programa es ti contido ira
f x ta-f o n t e P ara is t o , u s a - se um a d a s tr es ps ud o - i e tru o e s

s egui n t e s

1 ) , , , , fe NOMEAIS . U<nome do programa t se for programa


pr i ncipal

2) ii> , . . , nSUrtRfe * , &<nonie> : se for subrotina .

3) ftb .... bSEGMfcb. - . . , <noae> : se for segmento.

f>P < significa tantos espaos em branco quantos dese-


iarmos , e esta subentendido no que segue.

Do rjotne dct lar ado sb se conservam as duas primeiras e a ui

tima letras. Sav e permitido haver duas rotinas com o mes-


mo nome , item usar o nu ta e de una rotina como um smbolo eat

qualquer outra parte do programa.

Outras pseudo- inst ruo es (podem set: postas em qualquer parte do


p r o g T a tu a , e x c e to a p s eudo -mst r u a. o 1 1H ;

4) ORG <operarsdo>

Esta ins ttu&e tem. aqui um e ign f iado diferente daquele do


montador &b s.o 1 u to .

< o p e r a n d o > r e fere - s e obr ig a t i ataen te a u m e nd a reo re 1 ac-

tivo a definido quando a p leuo-instruao ORG fox* encontra


da

0 efeito desta instruo e causar a numerao das instru-


es subsequentes a parti r do endereo definido pelo ope-
rando modificando , poi tanto , a numerao sequencial.
Exemplo

Se a etidere.o relativo corres pn-


e ii t e a J A T f o t / 1 00, a i n s t r a o
ei

JAT TR1 ter a endereo relativo / B 5


CAS. PLE j

ORG JAT + / S5

TR1

Esta instruo raramente usada no montador relocvel

s u d o - n str o e s p a r a 1 g a ao en t re rotinas:

5) EXT <sIaibOiO>

Declara o smbolo como global externo, isto , o smbolo e


referenciado nesta rotina , mas definido eia outra Usa-se pa .

ra c h am a d a de s ubro t. inas .

Exemplo

EXT WRITB
*

PUG WR.ITE

Se WRITE na t
fosse declarado externo , ficaria sendo um sxm
b o 1o i nd e inido ,

6) EMT <operando>

Declara que o <o per ando > referencia ura ponto d.e acesso da
rotina em duestao.
15.7

Exemplo
Quando na to tina do item anterior,
,

SC BR 10 for executado o PtG WRITE, a execu


ao da sob rotina 1.0 comea r no
ENT r espec t i v o p o n t o d e a c ess o
WRITE

WRITE PI, A *

O operando deve referenciar um endereo relativo (reloci


ve1 ) ,

7} <s inbolo> COM < tamanho


(opcional)

aa t c ona a ar ea cotnum a aer nesta cotiaa


;
, roais pala
vi -j s , cujo -:i u ro o i o u o peio < tmiiillo , A p r d o ire
i. dessas
palavras passa a ter sen endereo referenciado pelo <sm
lo lo > (se existir) (0 endereo 5 em relao ao inicio da .

are,a comum) ,

Exenrp 1 o :

Instruo: 0M0 COM 5 0 MO

a t e, a com ta ant ga ar e. a co n ro res u 1 1 a n fc

Por exemplo, CAR OMO+2 carrega no ACC o contedo da pos


a o 33 a area co sn u ta ci

Naturalmente se nenhuma Irea comum tiver a tida sido decla


r a d a , have v
, a i n x c i a 1 z a a o ne s s a i ns t an t e
<i
,
15 ,

8) <rotulo> MFC <flor> (define cRstante)


opc Io is a l

Co 1 oca 1 1 a pa I avra c o r r en t e da m e x& 5 -


ra t que fica referenciada pelo rtulo , que portanto, fi-
ei a reerenc I ano im a po s :
ao r o c iv e 1 ,

9) < r t 1 o> JlfcFbC '


* myn s ct g e ia ( def me mertsa gera)
( o p e i o ri a 1 )

Define uma mensagem : oro ASCII (vide apndice)


que dev>- estar onere aspa;. E equivalente a uma sequncia
de DEFC ,
cootarae c .a u >; a puir;

AMOK DEFASC "ODO" equivale a AMOR DEFC @0


*
DEFC #1)
DEFC PI
DEFC #0

A < meti s agem> devo ter ao tnxirao , 50 caracteres .

10) < ro fu lo> JlEFi:,; < operando (define endereo)


(opcioaa 1

Coloca na posio de r i a corrente e na seguinte ( duas ti tjs

palavras portanto)
endereo referenciado pelo operando*
,
o

Exemplo: supondo o endereo relativo cie PGM /O 18, cora a


instruo MAIS DEFE f<)h o montador colocara em MAIS e
MAIS + 1 os n meros / 00 e 18:

MAIS MA I 1+1
0 0 :

en
j >"
P 0S
e c
o e
; l -d

sempre seru
Esta instruo e utilizada quando se estiver empregando
end e r e am e n t o io d i r e to ( cap cu 1o 4 e 5 ) ,

1 1 ) tulo>
< ro DE F1 <op e r a n d o > { ef ine i nd ire to
( opcioa 1

Anlogo ao anterior, mas o primeiro dgito hexadecimal da


primeira palavra feito igual a um. usado quando hi en
c

dereamento indireto em mais de ura nvel.


Exemplo i

MA I S D 1 F I F 0 N resultaria e MAIS MAIS+1

0 bs . : N o t e -se qu e T> K FC e n v o 1 v e um a p a lavra da taeraSr i a en* ,

quando DEFE e DEF1 envolvem duas palavras cada. uma.

12) <rtulo> BLOC <tamanho> (bloco de dados)


( opc i ona1

Reserva uma area com o tam anh o especificado de palavras pa


ra armazenagem de dados, sem colocar nenhum valor nessas
palavras 0 rotulo (se existir) , fica associado a primei
ra palavra do bloco.
Exemplo -

CAR UM
TRI
r esu1 1a na
TRE
seguinte
INC con i gurao
da memria
HAT BLOC 4

TRE
INC
i

TRI
15. 10

O ps :N ote-se a diferena entre as p s e u d o tj s t r u e o e s BL0C e


COM:

BLc reserva um grupo de palavras 11


internas 1

a to
tina em ques t ao

COM reserva um grupo de palavras numa Srea comum


a todas as r o t n a s

< smbolo sQt <oprando> (equivalncia'

l-az com que o sisbo Io : j que do mesmo tipo e como mesmo en


'
' :

-
E*apj o . 0 o Dg x ando
deve ser tal que se retira a um endereo j a definido quaa
do a pseudo-instruo EQU for encontrada.
E xemp 1 :

PMU EQU / 085 fazem PMU e IDK os endereos


IDX EQU *_* a b so 1 =
t os / 38 .1 e / 00

QTX EQU QTY ib.z fJlX e QTY tcrenreirrse a mesma dos i~


ao de memria, Portanto, QTX e QTY ficam
do mesmo tipo, isto , se QTY for reloci-
vel, QTX tambm o ser e, se QTY for abso
luto, QTX tambm o ser, QTY ja deve ter
s id o de n Ido a n ter ior m e a e ,

Esta instruo e usada para dar maia de um nome (rtulola


u m & pos ao d e ta e mo r i a

1 4) F I M < o p e r a n d o>

nf r f 0 a u -sis fcs a
- ^ - m
ti ma ms tr uao <ie uin prog raia a . Ser
ve para indicar ao tsont- ,do r r e 1 o c a v e 1 que acabara as ins
t i u os s s ei em monto ^ , ou sejja, acabou o p rograna^f
on~.

1 .
0 operando s tem significado num programa principal : ncs
te caso ele referencia ura endereo que e endereo da po
o
siao de memria onde deve comear a execuo do programa
(isto * a posio que contem a primeira instruo a ser
e x ecut a d a ) . For co o. s e g u in t e o e nd e r e o em que s to ser
normal tn c n t e , r e 1 o c. ve! .

Se se tratar de uma subro ina ou segmento, o operando e


ignorado , pois estas unidades do programa oio podem ser
iniciadas independentmtaente mas apenas quando "chamadas".

E x e ia p 1 o :

FIM STT i reurn} { lin.efead}

Para exemplos de programas relociveis onde sao usa-


das essas ps e udo- n s x u o e s , e nsu i tar o a & dice
1 ~ OPERAA Q DO PA TI NHO FEIO PARA Mu ST A GE M DE PR OGRAMAS

S es t. e cap t, u1o ra o s tr a-s e c omo ope r a r o Pa t inho Fe o


e realizar a montagem de um programa perfurado muna fita de pa
pe1 ( i t a -- i t> i| | e ) .

Devido ao fato de memria do Patinho Feio ser


a de
apenas 4X (4096) palavras, montador na o cabe inteiro nessa me
o

mor ia . Assim, tornou-a v. necessrio dividir a montagem em 2 fa-


ses, Mo 19 passo montador l, pela leitora de fita, a fita5 o
contendo o programa- fonte e monta na memria uma tabela de sm-
bolos onde es cio todos os rtulos ("labeis") definidos ho pro-
,

grama; alera disso, deteta eventuais erros no programa. Se, no


ei do
f passo ttao houve t s ido dada mensagem de erro,

pode-se
lassaz ao passo 2, Caso contrario,, oao adianta executar o pas-
so 2 , pois resu.lt a ri uma. fi ta-ob jeto errada,

Ao fim do passo impressa a tabela de smbolos .Se 1

n ao houver nenhum erro, a seguir , / 00 SI (que sig-


e impresso,
nifica- oro smbolos indefinidos) e PASSO 2 quando ento o ,

Patinho Feio esta pronto para o passo 2,

No passo 2 a fita-fonte e novaneute lida pelo monta-

dor, que agora ,


fazendo tis o das tabelas montadas no passo 1
perfura ura a fita -objeto e , simul taneamente, faz uma listagem
do programa

At tres sadas (tabela de smbolos , listagem e fita-


objeto) sao opcionais e sao determinadas pela primeira linha
do programa -fonte, que e o controle do montador . Esta linha
0 br ig a t o r i a , E 1 a t em o se g u i. n t e f o rm a t o :

1v ) na c o 1 u n a. 1 ( de mo d o -

f
ue o pr i meiro e arac te r n a o hran-
co ence , 1 rado pe 1 o mo n t a d o r n a f i t a de pa p e 1 t: em que ser
um a # ) .
E squena Gera l _d e usa M o a t a g e m ;
29) Opcionalmente as letras B , L e T em qualquer ordem, sign
ficando

B qu e r - s e i t a -o b j e to

L q o e r-se 1 i s fage

T ~ que r-se tabela de s inibo los

39) Para o montador relocvel , pode-se ainda, opcionalmente

colocar o seguinte t apos os caracteres 8 L e T ,

ti j para indicar que se trata de uma to t iria cie trata


mento cie interrupo ( R TI); ou

b) ,Dn para indicar que se trata de um "driver" de E/S(ro


t iua q ti & tr a t a aa / S j p& r a o d x sposit? o n ( n j

um dg to h e x a d e e imal)

49 ) A seguir , RETUE e L1NEFEED (nessa ordem) para indi-


car o fira da linha de controle

Exem plos

3.) #T RT } LF } so e desejada a tabela de smbolos,

2) @ TBL s DE 1 RT) { LF 1 quer-se tudo e e um "driver" de E/S pa


rs o dispositivo /I (so no montador~r
ocivel) .

i} <> L8 C 8. Tj { tf } quer-sc 3 ist a g em e i t a - ob i e to .

Obs erva oe s

19) Se for detetado algum err- durante o passo 1, a linha onde


cx occ x eu c x tnp t SSc. e vg c o CG o g c o ci do co
:
go e vo yex
i
.
i (

digo de erros iio apSnci; ce) ,


29 ) Se houver smbolos indefinidos no programa, eles sero lis
tados ao final do passo 1, mesmo que no tenha sido pedida
a tabela de smbolos . seguir impresso o nmero total
de smbolos indefinidos} por exemplo 5 / GF SI,

39) Ocorrendo algum dos casos anteriores, nao ser 3 impressa a

mensagem PASSO 2,

49) Nao se d e v e e s q u e c e r q u e a p o s a i n stru a o F I M < o p e r a ndo > *


deve-se ter uai RE TU RN LINEFEED
e um para indicar o

fim da. linha e esses sero os ltimos caracteres perfura-


dos na f ta n esta ordem

Controle de lis tagem no montador reloc vel

No montador relocvel possvel suprimir a listagem


M~H
no meio de ua programa, colocando um caracter na coluna 1
Os cSdigos-obj eto gerados, porem, continuam a ser listados. Pa
lr
ra recomear a listagem coloca-se um na coluna 1 , s li-
"+ sao tambm consideradas como
nhas comeadas coas e li-
nhas de comentrio , alem daquelas que comearem com um ,f
.

Exp licao sobr e ,o formato de diversas sa ldas

a) Tabela da smbolos no montador absoluto

Saem duas colunas a primeira com o nome do smbolo (tres ca


racteres) segunda com o endereo absoluto corresponden-
e a

te na memria. Quando o smbolo tem menos de 3 caracteres


o espao restante e preenchido com @ .
Exemplo

MC 8 100 endereo e m h e x a d e e ima

CCS 101
N#> 105
109
PEF IAS
MAQ -~ Sf -
"
s i m b cio i nd e f n i d o
P! 1 21)

b) Tabela de smbolos no montador relocavel

tabela agora tem 3 colunas; na primeira va o os noares dos


smbolos , na segunda vao os endereos e na terceira vai o
tipo de smbolo, que absoluto relativo (neste caso, dei-
e :

xa-se em branco a terceira cciuno), ponto de acesso, exter-


no, comum-

4 ^ -i -T

*3 X U D O
_

.1 O

Absoluto : o endereo e absoluto na memr ia

* Relatvo(relocavel) : o endereo c relativo ao incio do


programa

, Ponto de Acesso; o endereo e relativo ao incio do pro-


grama .

- Externo s na o h endereo por ser externo; na coluna de


endereos sao colocados trs asteriscos

. Comum ; endereo relativo ao inicio da rea comum .

Exemolo % HES 000 ENT


ACT 17A BS
025
SAE 026
GOL *n* EXT
ENM 03B ENT
CM# 01 COM
IO .
:

c) Listagem do montador absoluto

Fo rata to de uma, linha de listagens:

19) mero da linha (em decimal);

29) endereo local # isto aquele referido pelo operando


nmna instruo de referencia endere- i memria e o
o onde ser armazenada primeira palavra da instruo a

(em hexadecimal) ou de um rotulo);'

39) co d igo-ob j et o gerado (em hexadecimal); uma ou duas pala


vras, conforme a instruo;

49) rotulo, que pode ser um nome (smbolo) ou um " .


", .

5v ) ia a em n c o da ins t r u a o

bV j operando (se existir; ou se a instruo na o exigir ope


rand o

79 } c. omen t r i os ,

Se urna linha foi eomentri 3, ela somente numerada e copia


da, 0 mesmo ocorre para o controle do montador (1? linha),
Na instruo FIM, o endereo do 29 campo e o de incio da
e x e c u ao , e on o rme def i n i d o u > o p e r a ndo .

Exemplo

1 @TLB
2 100 0 9.V /100

100 00
l CS 13 SBC /OU primeira varivel
3

exemplo da foi) a de listagem


'
G0 S

F-H&S32

9BLT
006 0R t

* *F * J 4 3 JL 5-

$ PIO 6 PA.-; H-E2EKPL0 ABSOLUTO PARA


PAI I H H 0 FEIO; ESTE PROGRAMA ES
m.
DEC UR I EE ENDEREO DE E / S / A :
>

*** * w* '* * i * * ** * * 0.0 0 0 ****** * m * 0


5t
*: 0 * 00 ** *

OO 80 I NIC 10 LIMPO $ ftPONTft Pftgft fl PR INEIRft


4> l i 9E TRI m LETRA &ft FRASE.
0 08 50 1 C LO O? CARX FRASE BUSCA PRXIMA LETRft
ft A ESCREVE A
0 0HDA ao SH I / AO E SC RE V E HA D Ct R I T ER
occ CA 1 ac SAI /A L OOP DE
OQE 00 QC fL * -2 "WAIT-FOR-FLAC"
1 0 1 9 Tf I FAZ O IMPERADOS!
1 9 0 185 1HC * APONTAR PROXIHO
i 0 2 20 00 A RM 0 CARACTER A SER ESCRITO,
Cl 0 14 60 1 B SOM H testa se a frase terminou.
-v
, 0 1 AO OS PLAN L OOP MAOI VAI ESCREVER MA S) I
- "&
D18 0 0 PARE # SIH PftRft
24 0 1 9 0 0 06 PLA INCIO SE EOF DA& NOVA PARTIDA*
ZS RE CO MECA 0 P 1 GRAMA
2$ 0 1 f2 H. DEFC 14 -
NUMERO DE CARACTERES DA FRASE < HCLv*
2? * RETURN UN I

Z 6

0 c 50 FRASE MFC 0 F
23 0 1 4 1 DEFC 9
1 Cf 01 54 DEFC t r TftSELw COM a
31 0 f 4 9 DEFC ? i FRASE A SER
32 0 20 4E SEFC 3N ESCRITA
23 02 3. 48 DEFC UK
34 0 22 4F MFC t.' 1

23 0 23 20 DEFC &
36 024 46 DEFC 9 ?
J7 0 25 4 5 DEFC 9E
2S 0 49 DEFC 91
0 2? 4F (efc t 3

0
i;
r 028 00 DEFC / :) CGD ICO DE RETURN
-1 0 29 Oh DEFC / ( .
CODIGO DE l NEFEED
- ^

1 43 00
i S F l Pf
d) L 1st a g em d o mo n t ad o r r e1ocave 1 :

h s l o. b. xi a u.o a ao oi io 'jg iu to com duas


a. tu t.\. t , p a. 1 x e e j o c i ba
des ,*

1 ) o e n d ere o 1 i st a- do no 29 c a tit p o re1 a t i v o ao i :a 1 c o do


programa (a a o ser quando se tratar de rtulos absolu-
tos) ;

2) apos o cdigo-o&jeto hexadecimal, nas instrues que re


ferencaa a memria vam o tipo de cdigo:

R relocvel {endereo relativo ao incio do programa)


X ~ instruo indexada
em branco ~ instruo que oao referencia a memria ou
aoso luta.

e ) Fta ~ ob j e to do m o ta d o ; & b , e Isto

J. i j 6 to do tkouca lor absoluto j <i esta enx fotfito hirta


r io e xec u t i v e 1 i sto e o nrogr a in a n e 1 a perv rado
, ,
pode sgr
e b. r x gado exe c u tado ia e d i a t a a at .
a a aieaior ta e ift

Os dados vem perfurado na fita, em b locos cada um com , o


seguinte formato:

tiV de palavras do bloco ~ n


exiii r e o de c arga da la. p a 1 av r -a 2 co1u
(
s
na s

rs pabvvras a serem carregadas

a+3
'
ck m A
' ch - u '

An+ 4 * I .

l 'i-

U checksai testa,sa tu o / e erro na perfurao


,
o que fera
n
ocorrido se a soma de od ,; as palavras do bloco ( ? A-: )

aao for zero 1


Aps o ultimo bloco deve haver, pelo menos cerca de 30
"eed-f rames' (nulos) para indicar o fim da fita.
5

f) F itafe j e to do montado r r elo cavei 1

Nao , ainda, executvel


pois esta num formato binrio in-
t ermedi rio . Para tornar-se., executvel e necessrio pass-
la por um outro programa (reiocador-1 igador) que faa, a li
ga au c nt te o diversos p r o g r a mas e s u b r o t i n as que e n tao, d a
ri c o mo sada uma fita com cdigo binrio executvel

Devido ao maior nmero de informaes que uma ft a-objeto


relocvel deve conter, seu formato mais complicado que
aquele da f ta-obj.eto do montador absoluto . Contem o seguin
te :

1) um bloco de incio - contm o tipo do programa (princ-


il , s ubroci na ( norma 1 ,RTT "Driver )
ou segmento) , o seu nome e o tama-
nho da rea c o mura

2) um bloco de ENT - contm os nomes e respectivos endere-


os dos smbolos declarados como pon-
tos de acesso do programa;

3) um bloco de EXT - contm os somes dos smbolos declara


dos ex.t ernos ;

4) blocos de dados - contm o cdigo-ob jeto relocvel (alm


a mtruao, vera tambm a informao
sobre o seu tipo)

5) utn bloco de FIM - contem o endereo de execuo (se for


nec et s a r o ) .

Exemplos de programas cosplet js, absolutos e relocveis , sa.o ea


c cm t r a d o s n o a p n d ice t
Operao do P atin h o Fei o p ara rea 1 iz ar u ma m o n tagem
( Consul te tamb m o Manual de Oper aa o d o Pat inho Feio**)

Ca r regado r A bsolut o :

Todo programa para ser executado , deve ser colocado


na memria do computador Isto pode ser feito por exemplo
atravs do Registrador de Chaves do Painel . Esse mtodo e , po-
rem extreraamente trabalhoso e sujeito a erros

Por isso foi desenvolvido um pro grama chamado Car-


, ,

regador (loader r) absoluto, cuja nica funo e transferir p a


ra a memria ura programa perfurado em uma fita de papel no
mesmo formato que aquele gerado pelo montador absoluto {vide pa
g a 16,8), Es t e p r o g r am a c a r r e g a d o r para s e r esc c t a d o d e v e
,

naturalmente, estar na memria * Para evitar a colocao deste


programa na memria pelo Registrador de Chaves sempre que o
Patinho Feio fosse ligado, criou-se uma rea protegi da na, me-
mria do Patinho Feio, que aio e destruda ao desligar-se o cota

putador j e nesta irea foi colocado o carregador absoluto,

Alm disso normalmente , nada pode ser gravado cm l


do nesta irea e consequentemente, o programa nela armazenado
no pode ser executado. Desta forma, a rea esta protegida con
tra eventuais acidentes,

Para desproteger esta Irea existe um boto no painel,


e desta forma pode-se processar o programa carregador e carre
gar cos ele outros programas ,ta memria Deve-se tomar muito .

cuidado quando a memria estiver desprotegida para no estra ,

gar seu contedo ; caso contrLrio dever-se-a novamente coloc-


lo na memria, usando para i s to o "micro-pr-car regador " Ins tru

oes de como fazer isso esto afixadas no prprio painel do Pa


t nh Feio.
rea protegida comea na posio /F80 e vai ate o

fim da memria (/FFF).

Como realizar uma montagem ;

a) Ligar o Patinho Feio e a leitora de fita e colocar a fi-


ta tom o montador (passo 1) na leitora,

b> Apertar o boto ''preparao -

c) Apertar o botac "endereamento 1


.

d) Colccar no Regista ive irnero hexadecimal /P80

e | e rt a r o bota partida - i r . a 3 Cl , se o nmero co-


locado e mesmo /F8G)

) D espr o t e g e r a m eia o r i a ,

g) Apertar o boto "normal.

h) Apertar o boto "partida. Neste ponto o passo 1 do monta-


dor i colocado na memria, aps o que o Patinho Feio para. .

Se parar com ACCI 0 esta tudo 0 K , , , caso contrario ,

voltar ao item c (Houve erro de check-sura)

i ) Protege r a aeao r i a

j) Colocar a fita com o programa- fonte na leitora de fita e li-

gar o dispositivo de listagem (Impressora ou DECwriter)

1) Apertar o boto "partida", 0 programa -fonte e lido s even-


tuais erros sao detetados . A seguir impressa a tabela de
smbolos (se foi pedida) e,se nao houve erro, i impresso:
/0 0 SI
PASSO 2

e ento pode-se passar ao passo 2 do montador


16 , 1

Caso seja necessrio reiniciar o processamento do passo 1 ,

cujo endereo de execuo 2 /006, deve-se, aps recolocar a


fita co m a
o p x o g r a m - f o n t e na 1 e i tor a de fita;

19) apertar endereamento e "preparao"

29) colocar /006 no RC e apertar "partida 1


*;

39) apertar "normal" e "partida".,

xo) Se na o houve erros no passo I. carregar o passo 2 do monta-


dor li a memria ,
da mesma forma como foi carregado o passo 1

(itens a, c, 'd, e, g, h, i, j).

ti) Recolocar a fita com o programa-f onte na leitora de fita,

o) ligar a perfuradora d ti fita, se foi pedida fita-objeto

pj apertar "partida" . 0 passo 2 2 executado (a partir do ende


teo /G06) e da a listagem (st* foi pedida) e a fita-objeto
( se foi p e d id a ) .

A fita-objeto resultante de uma montagem absoluta po


de ser a seguir carregada na memria (da mesma forma como foi
carregado o montador) e executada,

Ja a fita que resulta do montador relocvel nio esta


ainda, em formato executvel , conforme ja foi dito. Para isso.,
necessrio passa -la pelo r l ocado r- 1ig ador onde ser feita sua
ligaao com outros segmentos ou subrotinas

Obs e r y ao :

0 boto preparaao "reset") serve para colocar


o Patinho Feio
(

num estado conhecido; ele pira iatamente (sem terminar a xaed


instruo que estiver executando) e vai para o modo enderea-
mento colocando os vrios f lip-f lops nos valores descritos no
,

captulo 12,
Alem d isso 5 apertar preparagao e o nico modo de escapar de um
loop'* cie endereamento indireto (captulo 5),

Apertar preparaao d ura n te a exe cuo de unt progra ma pode es-


tragar o contedo da memria devendo portanto, ser evitada
es t; a a t tude ,
-i S 1 1 a I

a) Diagrama de preeedeneas para construo de operandos vali-


dos em instrues de referencia a memria:

<smbolo> uma sequencia de uma a sete letras, das quais sao


retidas pelo montador apenas as duas primeiras e a ultima

<digito hexadec ima 1 > da o deslocamento em nmero de postos,

< deslocamento ci o deslocamento eia nmero de palavras da se-


ctor i a *
O
t
ed
u
J
a
o
o
~a

u
*-?
u
u
RIA

0
MEM
o
*0

i r-4
cd

t
U
r 4
al
a
REFERNCIA

*c

d
t

DE
o
>

OS G>
4-1 *H
INSTRUES
d cd
B
O
Oi U
Oi Oi
d 'id-

& es
~t M
t a)
<a

,c

tt i

O
ai M
ai fl)

0 S
\ t
H
a
m
B O
a
H tt
U 3

a
sd t
J*l
t
<
,c Q>

M ai
a>
0 Oi
'W-
SADA

ENTRADA

operaso

DE

de

INSTRU0ES

tipo

**

t
;

dispositivo

do

numero
A . 4

deslocamento

de

INSTRUE
ATAS

IMEDX

INSTRUES
A .6
8

mO tr- m
d
o
o* &
d cy s
d -M r
t3 *13
M 00 s * ri
oi ti M 44
C.S .u $4 N
a es fi
:
r4 O H CL a
St 03
e H i <y
fc<
W
o O 'Xj ti P
v<
i m *S3 M
o O o
H
C o
CU
3
O
03
mUI p
O
!
T
m u U* o o
m M Oi 43 43 ai
v-< Q-i 53
H u Pi d O D O
(BEI)

a;= o d W U;
pa < *-*!
41 o O <
-M Ti T3
O o pa d P4 0 5 O
<n
<
*c m *ri d
0
4 a T3
S P- a-' D
H ca 4 W O* *-4

indireto

(4 P o 1*1 O U d O O
O O D '*'*-
VH u m "d
* rj U3 55 ?*
iM h> H ?H M u m
zn
m
i

O
! \ 4*
01
P 3 44
d Ui OO p 56 d
to o 4 o
o
o
,e-*

t~
H-A
u
CL
fr-*

W
55
101
4i
?-4

Oi
UU
44
a
m O m
**%
o d T? ?s m
fll I ca O
P
endereamento

00 CU D O O o
ses 3 *f L m cr 44 T? U *0
M r*i 4 o Oi d i4 a a
M o u d- 4? & o
CM <y w M o cr 1

a 01 & u
P tu ij- < T CL $ PI
e-i 4-i CL m m
P? O d i O to a m
O H r*-. CL -L Oi 41
*
de
O H o O X
P
Q P4 !

P
o D O Q
4
td 5*3
*H
u 4J
-?4
u M bit
Pi as p* CL
O 4 S f sd i-H a
t
PL *H
4 m 0 u O 4 o
@ H 03
M u 4-=H d m U!
t-H 4? O V3 &0 H |4 u U
rJ
^ pi < <u H \t8 <! liga

|

a* Tf %>-=.{
p* <x

oar aio Wl 0N

a 33 4
43 M -t pi m S M
& st 5 &4 m < & IKD
P4 H -t p4 m fc H

CO Oi
CTv o\
p
cu
u
ou
p .
xt
<7\ Oi
c) P se udo -*-In s truoes (comandos para o montador)

m o *
o
j h "d D s \q c u
\58 f-s 4i
0 -O
U p 0 05 Oj CO
trt ei O o W s
o a> oi r-i O I <0 ui fM
O m Ei 0> M T3 3 4J W fli
o ?~*4
r-s
ti c o >
0 0 5S
> vd
o
<
U > J*4
m <u o
e $.4

O *H
4-
f
M
>
CO !~l
Qi
-H U

t 5 o
> m Tf > r-5 "O B y > 3 f-4
as U 3 m x> r4 > -ri j S
t 0 O O 4vJ u m d 3 4! M
m 5 -o C 1 a cu
ffl

rH CT 05
m U C r~ M o o 3 C A
o ! m a ! s o o
O M u m 3 0 5
m o a>
V) qf u O p OS C

es
At
O
O
&
K **>
6

B B
0
e **"4 * O 4J-
@ *~ Oi 0) d S J fu sj
g t> *o Tf -x "d d w so CO *- tcl o
o 4-S 3 w > H r~ *~ r4 P 3 W B g

Cd 1 1 o.

'O 4) J P O -
N CS t O 03 4-5 4-i

M J3 *r-4 0 r. d d
-O B |rp 4J U O u O H
j ca M j a ^ & e, o
M m d U m O a.
nj es D A B ja x s
o O- 0? b-i O 3 0 3 d :
>,
Q M m S U
o tg
!

o sn o.
O
5
%,-4
S5 W 0 -M
4*
4-
s
t- 2 n O <t3 C 2 O
PC S M a @ a =3 C su d S
u 4) 4-t 3 3 U O w
to
-H d &
<u
t a >
;3
0 <P S W
ff

vO CO
oi 05 P -w O* s
c d
CS T3 U **4 V Ci o' M H o fii O S
o ***4 Cd *f-4 ^ <y M a t a B
05 SO U-8
*
& 4-4 cd 0 is *t-i
ni s s> * *f=-t *54 s H M fU 4) +J a>
e -U 03 u u u u s m a o d d
P s
--( as c O <05 ^ 43 3 S M
a d? 'O &,* o< A U O i4_j
m
K) D 3 as < 1-4 'Jl tf 0) H sd cp as <
-a cr cr t, P< i d T3 6) ts TJ ti Tf 'O

I t | 05

**1 a -M
>;# o
N d
o CP 58 ai >
d
s ll-i *r ^>5 tJ O 4-* CS o
S5 sj U M o a) tn
c U IO O O 3 d
a * *4
r-sO sy sM 4>
'
PU &4m ? Q O 5 < c
o
a
P
Tf
0
xj S
S o

y
d
O
U ^
**iH

u-/ 0 V- o o o M cs
r- H c/s
B e 0 tc fc r-H
<3 M~ (U a) rH 0> m O CU
3 -H 0) S T3 Tf 0 O e tfl
C" o TJ 3 H *4
3 > -s; 3 c| m
o
o
M O
ss
o
Pw 55 O to
40 m pa O H H &4 <c
33 o W fcU
t o iZ- CO to a w O C4
sa
33
Q
A
ir\

*4
3f

5 . m * U ,G
"d > o P p
= \d H CS (/) o
0 cs Q N s *

flj cd o IO 'H m o
Stf M M -N 44 0 0
M > > <d <8 SU 4-J 4l

> <d cd M Ci 3 -- N
r<j
*-4 H da> o
v cd u M w 0 S a
Kj o. p o 3 T4 'd 80 bo
O. *d O ?3 M a> *H
0) CR. a m 80
OBSERVAO

ti e *8 M %Qi 3 O
cd e M 0
d % a d O O U fi O
'Cf l 1=4 s T- si m P3
-a? m d m o cd d
m u
n ts o 44 Ti 0 sg
0.10 s d O Cy r4 u
3 E O o o M > o 4~4 ca
0 .- a? 'O cg o oi \ cg o a,
O s - =^4 t d 33 o O u o
I

o

di ct
;
13 J i

4i C r4 dl -o 1

U O s o P- o p S3

a 4-f O T? O *-4 *H J 1
a
a.- as 0 0 ti M-4
M Cl 6 O- a~j o *
OJ ?-*
O -r* o 04 w 0 W5
**M
*
E 3> 0/ o O O
& a O 55 **- C o= fx c
H
p
u *e O ZJ i?5 o
o a p /5 O CU o
o -a o VO 04 sd n Td vo o
DESCRIO c> P O" P e ifj 01 p o o TI
-3 n 0# Si Oj M > cs -t ^3
M M M o. 0 *
VflS rt O p O s
01 S> a> o m o H M c3 e **4

3 O. TI d 0 u d 0 P, C u o *4-4

d o c o d u cl ts C-, o "d o O
a> 41 ns > m H: Of O
o ca m 0 ca C3 o O o vJ
4? r* , i ai u o iV > t p O -

P 4? o M cg p. o o CU V <ti

b H P-
s(4 tJi-S 0i r. <u O 0 flj R P *H .0
i'44 N y< o TJ <d x d
-3 Q SI o m o <s> '4 B5 o o. D O
IS *t TS a ro t
JL M s O TJ Pd td

BI S| !
< <*4

U * u P4

fli cg 01 <y 41 0 TI
U*4 *' J 44 44 04 H
di m e a <y 5-i 0)
u *,o cd l- vo 4J
0 U U 0 d
OPERANDO
U Gi cs CS u O Si
3 0 ts ts 0) a a
0 o O 3
0 d
*$ u V cri ta

}3 > t3 0
m 0 <u t m <3 S 3! 3 0
3 X) 0 3 M M r
3
Vo * iH 3 3 cr p< ti

ft M U
f fs-i O ad as
M
MKEM0NICO

.0 ua 4 o Cf
a Q: u (s3 Pi
A . 1

d) Diagrama lgico dos pedidos de interrupo

(No diagrama a seguir , s esta representado uta dispositivo


d e, E / S ) ,

Modos de ligar os flip-flops:

1) PEDIDO - e ligado automaticamente quando o flip-flop de


E S TA DO e s t v er ligado.
" e desligado pela instruo PNC / n.4 .

2) PERMITE / IMPEDE - e ligado pela instruo PNC fn 5.


desligado pela instruo FNC /nO

3) INTERRUPO - e ligado apertando-se o boto INTERRUPO


do painel.
e desligado pelo Patinho Feio, ao aceitar .

um a interrup ao pr ov e n iente do p a n e 1 .

4) PERMITE /INIBE - e ligado pele instruo PERM.


e desligado j. ela instruo INIB.

5) NAO EST/ESTA - e ligado pele Patinho Feio, ao encerrar a


interrupo (instruo PUL)
e desligado .
elo_Patinho Feio, ao aceitar
uma int er r u p a o

Ao apertar-se o boto "preparao." , os flip-flops tomam os


seguintes valores

PEDIDO; desligado
PERMITE / IMPEDE : desligado (impei *)

I N T E R R 0 P 0: de s 1 i g a d
PERMITE / INIBE; 1 i g a d o ( p erra ite)
NAO EST/ESTA: ligado (na o esta
o
M
0J
MJXJ
,
.

ttl 1 z
4. O 4:.i -U
W -M d *H
*r4 i ;~l 1-* 0
CU *
m u 01 OJ
d
,5
ttt Tj M
o o O o
X? ? *5 '
d m i

* H c^-
X J *T3 Ch
cl) p 0* 3
Q p, u p4 U
104
ff II
O*

O *
'd
:

O
*H a
r

6"
6
H
E
/3
a
o
o
w M
d

;U
1 4J <U
a H t j
m m a
sa
w * #4

H
t} fil
O u
m
l
f
4
4,-,;

41
K m OS
4
3 Q O o
t) i m

a ja, -H
es,

O
o g u O
-< oo
*-W 40
d
M
p r
o m
'
o
P,*P s
-H 4J iJ c4) OS
cu r~? C *?-4 oi

c>
6 *ts
o>
C~ p H l-C -
a
^ a
- a
im B
fu
ii mo <9
O 00

50 I
*h <a
P Q
V,

ta

3 8*3o o
P. nj mi< rA
Tt t> <y
p-, d
SH $
o&
ctf os
*H
nt
S u Cri Ps.

a.? M
tn o
4 m 53 'O
Pa 0
t3 o
< >
3 O
<3* *rj 4J

*d o

5 8.8.
44 co .. i
! O *H O
O. Ti t *0 O
H Oi o o 6 *8
i-4 3 O t CC--4
M O* *0 /> ~
5

t o C
f m
D,- a? U't * * D
H 'XI <X 4J x
d- ttf
*4 3 00
x H
Pu M W 0 Cl e r*4
*H
*
iQ
4 2 **
fi mA m
CU
N Pa H TT

\
.

_
3 Cl
e) Erros detetado s p 1o mon tado :

Apos cada erro e apresentada, se necessrio , ura a lista de


algumas das causas possveis do erro

ERRO 00 ~ OPERANDO DA PSEUDO "DEFASC" INCORRETO


P r o vave 1 ra e n te a1 1a f e cha r a s p a s a p o s a ra ens age
1)
que e o operando de tua a DEFASC ,ou a mensagem tem
m a is de 50 c a tact tes

ERRO 01 - CONSTANTE HEXADECIMAL INVLIDA


P o s s i v* e i s c aus as t

o sinal do nmero foi posto depois da "/"(deve


ser antes }

2 } fo i usada ema letra que na o dgto hexadec i


mal ( s5 :o o validas letras de A a F)

ERRO 02 ~ ESTOURO DE MFMlRlA


0 endereo , & memria ultrapassou /F7F
P oas v e i s ca ;
**. as :

1 ) or gem r o r reta ( ra u ito a11a} .

2) deslocame muito grande em operando de.o Ins-


truo de referencia a memria

3) programa ta? itn* grande, nao cabe na memria : de


v e - s e segirmt a - 1 o .

ERRO 03 - ESTOURO D Tc. PEIA DE SMBOLOS


Sao permi tidr s no mximo 256 smbolos em cada un
da de do progt ..ma. Deve-se substituir alguns smbo
los por ender r amento relativo (*-- deslocamento),
1 o cal ( p o ii t o s ou abso 1 u to, s e p o s s . v e 1
ERRO 04 - GOMANDO IRRECONHECVEL
Provavelmente ha um erro no mnemnico ou falta o
espao entre rtulo e mnemoni to e/ou entre mtiemo
ti ico e o petaado .

1)
ERRO 05 - CONSTANTE DECIMAL INVLIDA

ERRO 06 - OPERANDO INVLIDO


Possveis causas;

NOME , 8UBR SEGM ou EXT cem operando que nao


um smbolo puro no montador reioclvel

2} instruo que nao i de referncia a memria ,

com operando que nao e uma constante.

3) instruar, de deslocamento com operando no com


p r eend i d en tre 0 e 4

4 } n s t r u a > d e p a n e 1 c o o p e r a rs d o a ao c o na pree n -

d ido e6e 0 e 7,

ERRO 07 - GRG, KQSJ F" M COM OPERANDO INVLIDO


P o 3 1 v fe i s c a u ias :

1) o o per a ad nao permite o clculo do endereo a


part r ct a e 1 era e n t os p r e v i am e n te definidos.

2) no monta for r elo cavei o operando de uma ORG de


ve ser do t i po re 1 o cvel

ERRO 08 - ROTULO INVIl;. DO


Pos s 1v e i s c ai sas:

1) deslocam &n o no rotulo nao e permitido (s no


operando)

2) no h esp.it o entre rotulo e mnemnico fazen-


co com que o rotulo fique com mais de sete le~
t ras .

3) rotulo cc a a ais de sete letras.


A . 1 5

ERRO 09 ~ SMBOLO DOPL AMENTE DEFINIDO


Cada smbolo pode aparecer como rtulo em apertas
uma linha do programa

ERRO 10 - OPERANDO INEXISTENTE


No h operaao ea uma instruo que exige operan
do .

ERRO 11 - 0 PRIMEIRO COMANDO NO NOME, SIJBlt O l SEGM


obrigatrio declarar o tipo da rotina (programa
principal, subrotina ou segmento) logo aps a li-
nha de controle , no montador relocavel

ERRO 12 - OPERANDO DE PSEUDO I DEFINIDO

ERRO 13 - RTULO TIPO PONTO INDEFINIDO

ERRO 14 - RTULO DE PSEUDO IN V.., IDO


Possvel causa: O RS, NOME, SUBE, SEGM, EXT , ENT ,

nao admitem rotula.

ERRO 15 - OPERANDO DA PSEUDO iXT COM DESLOCAMENTO


EXT exige como opera ido um smbolo puro.

ERRO 16 - PSEUDO PROIBIDA


Possveis causas:
1) NOME, S U BR, SEGM * u FIM aparecem no meio do
programa

2) pseudo-instrues do montador relocavel usadas


no montador absjiufco.

ERRO 17 - ESTOURO DA TABELA S .


PONTOS
Mais de? 2.56 linha.; jstao rotuladas com um ponto
(,), Deve-se suhsi .. tu r alguns deles por enderea
mento cota smbol : a , asteriscos ou absolutos, se
possvel
16

ERRO 18 " PONTO INCORRETO


Possvel causa : um operando com ponto nao obedece
as regras do diagrama cie preeedeneas (vide apn~
d ice a ) ,

ERRO 19 - FALTA ENDEREO DE EXECUO


pseudo "-instruo FIM de um programa principal es
t s e. m o p et an o ,

ERRO 20 - ERRO NA PRIMEIRA LINHA (COM #)


A linha de controle deve comear com @ , seguido
das opoes desejadas (8, L , T) sem espaos entre
elas* No montador relockvel pode-se por ainda I"
ou ,Db m (vide capitulo 16 )*
f) Cdigo ASCII;

ASCII * American Standard Code for Infonaaton In


terchange

ura cdigo de sete bits por caracter Contudo cos .


*

t uma- se usar oito bits por caracter, onde o bit maia significa
ti vo e feito ou sempre zero ou um bit de pari d ad e

bits a i s
tis

sign f i ativos 0 1 d. 3 4 5 6 7

bits menos 000 001 010 011 100 101 1 i 0 111


s i g n I icativos

0 0000 SUL OLE M 0 <9> F f


P

I 0001 8 0H DC1
1 A . Q a q

2 0010 STX BC 2 ? B R b r

3 0011 ETX BC 3 # 3 C S c s

4 0100 E0T DC 4 f 4 D f d c

5 0101 ENQ NAK 5 E u e u

6 0110 ACK. SYS & 6 F V V

7 0111 BEL E TB ?
7 G w g w

8 1000 BS CAN ( 8 H X h X

9 1001 I EM ) 9 I Y i y

A 1010 LF SOB A i J 2 z

B 1011 VT ESC + K c k {

C 1100 FF FS
< L \ 1 I

D 1 1 0 i CE GC - - M m
] }

E 1110 so RS te
> N t ou n ~

F 1 i1 SI US / ? 0 * ou _ o DEL
A . 1

g) Exemplo de Programa Absoluto;

Hi II EQO
LEfi 10 i

LfV s7e
ARH 63 4
S! 72
k 1 E3
LE 125
ttH III i

PRE 14 s
UH 64 f
C 4 0
IHm E5F
e5
pr r;
I6ft ?t
cc C4
1 OP 96
P s SC 3
';
cH 612
IR 0 S65
Rh Eii

/oo n
IMS Sm S
1 iSLTC
I 100 0*0 /soo
I s

4 * HENAH MOORAHA 9UC CARREOA A MOfifft


5 * PARTIA &S 6A&QS FORNECI 00S
I * tti MKAOEC!NeL PILA CONSOLE
f
i * *# f '*
i * # *
*
18 f HE nm - INSTRUES OS UTILIIftCAOi
l i *

;S * i. ENOERICAR HSKAH
?
^ ^ |i
^ pj
Y | ^ j|

14 i
S VAI
CANaI. EtPERftNBO SN&ERtCAHSHTO
i HWP
3 * 4 FwRR NCSRECAft A OURLQUSR HONIHTO, SRTCR ARf}&A t?)
l S 0 COAFUfA&OA RiSPON&E C/ RSTURNj 8 UHfPIS&f
\f * ENTRfcR C/ EN&SECO SR HKXAj COH I &ICITO*
* 7 II ERRAR, AiTA VOLTAR 4 y SATgR. UM IRANC0. M
,l * NSSTS CAIO* 0 PROORAHA fONORA A SNM&A ANTERIOR
O * S AOUAROA NOVO SH&SSSCD ,

:
1 * I um VER NDERSCA&O# 0* 6 A 0 3 S SUS FQPSN FSRNfC&OS
2 * iifH 6UAAPA&6S IN SEOSNClA A PATIR 00 fHDERECO
n * ssRicirscOO
84 * f OI &A&OS &IVSSAO V ?R ttPRft&OI FOR UK UN CO IRANCO.
A , 1

23 *16- ULTIMO SifiO


0 LIMHA HA0 0CVC llft I6U&0 &| BRANCO*
ti * SIMM
UI II TI CABO UM L1HBFIID# XKTUftN OU VI Cl
l

Sf * VIRIA O I 1 8 T I T U i I ft

tf *it, UH BftftHCi OU RITlRN &IP0IS DO DADO I' UMA f/ MH


29 * QUE 6 OADQ IBM ASMftliHflft-
10 *12 DEFO 61 CADA fAHCO OU. RSTUftM BUFFCX I' ZtRADQ.
11 * I PORTANTO II PORIB OAOOI I MANCOS M fiOUCHCIA

34 8* SERA' GUARDADO UH ZERO HO LUGAR 00 SEGUNDO BRANCO.


33 *13, EM CASO DE ERRO MOS OAPOS, SE 0 CARACTER FORNECIDO
34 * FOR HEXADECIMAL BASTA BATER D NOVO EH SEGUIDA. SEM
,

33 * BRANCOS. 0 DADO CORRETO. S0 SAO GUARDADOS NA HEHOfttA J

36 * OS 0018 ULTIHOS DGITOS


3? *14. SE 0 AR AT ER NAfl FOR HEXADECIMAL. 0 COMPUTADOR RESPONDE
38 * COM UMA SETA <_> E PARA 0 PROCESSAMENTO
39 *15 HESTE CASO. DANDO PARTIDA 0 PROGRAMA VOLTA A SER
4-0 * EXECUTADO COMO HO CASO 14.
41 * 16 . ANTES DE DAR ENDEREAMENTOS B PRECISO HO ESQUECER J

42 * DE GUARDAR 0 DADO ANTERIOR SE NAO FOR DADO UH BRANCO


.

43 * OU RETURH 0 SADO NAO SER A' ARMAZENADO


44 *
4g *************#*#****************** *#f ***## *********** **** *
46 *
4? EGO f A HEXAH I K1 INIBE INTERRUPO
48 m
4$ * SECAO & LEITURA DE ENDEREO
50
51 EOI FE 7C LEENDER PUC LCCQNV L E PRIMEIRO CftR. DO END
58 E 03 E Oi PLAN LEENDER SE SCO. OU RETURH. VOLTA
53 05 D 2 20 XOR /ZQ NAO MONTA *ARH

54 EO r SE 34 ARH ftK GUARDA P/EXECUTAR


55 EOf PE rc PNG LECOHV LE SIS CARATER
S EOB AE 01 PL AN LEE 4 DER II SCO VOLTA A LER ENDEREO .

8? EOD D 1 4 r DE 4 A4EITA P/ COMPOR


58 EOf 2E 38 A RH A RN 1 GUARDA
-

59 Eli FE ?C PUC LLCOHV E TERCEIRO CflRATER


. l.

60 E 1 AE Oi P 1. AH t SEN DER SE ICO, VOLTA LER MD fi

fc 1 E13 SE 35 SOM K * 1 S NAO COM F 0 E COM SEGUNDO 61


1

62 El? 2E 3 S ftiM H At 1
f: GUARDA P EXECUTAR
63 E19 0 A 06 CARI / SD SAI RETURH
64 1 1 FE 72 PUC f A Mft TTY
65 E1D DA 0 A CARI i V> 8 AI L I HE FIE 6
EiP FE 72 PUC *' 1 HA TTV
6? 21 FE 72 PUC S*. DEM

6S *
69 * LEITURA OE UMA PALAVRA
70
71 E 23 SO LIMPA LIMPO * ZERA
74 Et 4 9f TRE ERTENSAO
?3 145 FE ?C LEPRQX PUC LECONV UE UH CARATER
74 2? 3 i m R AH GUARDA SE BC 0 0 U L 1 N EF EE& > 6 TO RE .

?5 E2S tf TRE * SE NAO t TRAZ EXTENSAS


? E2ft & % 4f OE 4 Av 1 1 ft P/ COMPOR
T? E2C 60 0 1 80 W 2001 CQHPOE
?B E 2 E ff TRE * C/ DIGITO LIDO
?t E2F OE 23 PUA LEPROX CONTINUA LENDO ATE *
ACHAR SC 0/2
m #
81 * ARMA 2 HAMENTO NA MEMCftt
62 #
83 E 31 FE 4F &UARDA PUC protegi: TESTA SE ENDEREO INVADE
84 E 33 99 TRE * HEXAM SE NAO . >

88 E34 20 00 mn ftS *-# 0 l ARDA EXTENSO MO ENDEREO 02


86 E3i 4E 35 C AR A RN* i INCREMENTA
87 E 38 85 INC * SECUNDA NI LAVRA
68 E39 35 6 RR ARM + 1 DO EM ER ECO
St 38 96 sv 1 SE NAO DEU CARRY,
90 ESC 01 23 PLA LI PA VAI LER: PRXIMA PALAVRA
3 E3 4 E 34 CAF 6 RH SE DEU*
ta E40 iS INC i INCREMENTA PRIMEIRA PALAVRA
43 E4 1 2E 34 A RH ASM GUARDA
94 E 43 &i OF 50 4 TESTA SE DEU CARRY
*?5 48 D8 FE 8 CHI - 70 2 ALEM -0 61 T l
96 E 47 8E 23 PLAZ LIMPA H ft 0 ; V AI tER PR 0X I M P ft i .

97 4? 86 MG N -5 * SIM- PARA EH LOOP


8 E4ft 9& PR Pi w COM 7 F
ff 6 46 OE 49 r L ft UHE 5 HO ACUMULADOR
100 *
101 *
loa * PR0TECAD PO PROCRsffft PARft OU H -
SE 4 ft DESTRUDO PELOS ftfi&Ot
103 ir- OU POS ENO/f ECANEHTO INVALIDO.
04 to

I 03 to

1 Of 1 4D DA 00 CARI C AR 200 2 ES T A URA AC U MULADO


1 07 #
! OS E4F 00 00 pRor&e PLft 0 RETORNA
Of ESI as 4| ARH CARI+i SALVA ACUMULADOR
1 10 53 4E 3 4 C AR arh SEPARA 4 BITS
t l E 55 c* t 4F S)E 4 RIS SIGNIFICATIVOS
I 12 E37 1 > m GE 4 DO ENDEREO
1 13 E59 08 F 2 som -/OE TESTA S ENDEREO > 7E00
114 56 AE 40 PLAN CftP NAO VAJ RETORNAR
i ! S E '50 OE 4 9 PLA UtlEG SIM? VAI PARAR EM LOOP
1 l *
H? * ENTRA DRIVER &E ENTRADA DE 0A r S., SER 61 T & PARIDADE
113 *
i 13 5? 00 -00 ENTRA Pt A 0
20 Ei CS 1 PNC /Bi CLP
2 63 C8 16 PNC 7 86 STC
12 65 ce 2! |J 7% f Y SftL /6 ESPERA
123 t? 01 65 PtA ftl T FlfiO
1 24 E69 cs 4 0 EHTR 783 ENTRA OAOO COMPLEMENTADO
i 23 E68 82 CHFi f DESCOHPt IHENT ft

Zi E - C D ! 4 &E ! IHPft PAR IDADE


i.

1 2? 1 1 D -2 CD 1 00 DADO
1 28 70 06 5F PLA EHTR A RETORNA
1 29 *
1 30 * Sftl - DRIVER DE Sft 1 *A
1
1 1
i v* *

132 E?a 00 00 SJ Pi A 0
133 ?4 ce 00 SR I 7 80 Sftl DADO
I 34 76 ce Z 1 tf F SAL /8 ESPERA
135 E?e OE 7 6 PLA y ff FlftG
-?
36 E ?ft OE & l PIA SAI f ET&RHft
IZ7
1 33 * LECGNV ss
ROT I HA !>
!!

C HVERSftO * MEXEI N
j 7S
1 40 E7C 00 00 LEC0HV fL6 0
41 E7E >A Or XGNSf? CA r : 7 0P A2 IN&ZCE
F
42 E 9e rs 0 -70F NUMERO DE DICITOS)
* **
?
* * -2? E FE 1 5r PU i ENTRA OBTEM DADO
44 ESI SI c 5
1 4'
TROCA SINAL
! 45 1 84 2E C 4 Alt ACC SALVA DADO COMPLEMENTADO
i 4 te 4 E C4 LO0F C '
R ftCC CARREGA DADO COMPLEMENTADO
1 4? 88 SE 7E pi
i GMOR SE FF RH, 1 CHORA-
148 E8h 7 E CS $ vftW DGITOS TESTA SE DIGITO *'

I 4S 8C SE 82 P 62 i ACM St FOR *> ACH


m

i EiE f 0 00 3 T 0 SE NAO APONTA PROKIHO


*

1 51 E 90 0 86 P t LOOP E VAI TESTAR NOVANENTE


152 Cf 2 4E 4 .
f 1 . E rCC SE HAO DIGITO, RECUPERA DA&O
153 E 94 Oi 20
'

S*>NI f TESTA SE 1 BRANCO


154 196 Sf 8 5 Pi AZ BPft-HCO SIM *> BRANCO
1 55 E| 4 C4 Ct R ACC HAO*> CARREGA DADO
56 *3ft 08 C< 6 1 f 7 00 TESTA SE l> RE? URN
! Sf 9C SE 69 Pi p BRANCO SIM) MANCO
158 f E 4 C C4 Cf
PXC TESTA SE
1 59 EAO 0 8 Oft SOI I 70 A 6' LIHEFEE&
O EA2 BE ? t L A2 IGtOK S> IGNORA
1 EA4 4 C4 CAR ACC NA0> TESTA SE
1&2 EA 08 4 0 SOM I 9$ ARROBA
163 EA8 BE 88 Pt 2 ARROGA Sli1*> At RO BA
IS4 EAA DA 5F CARI NftGi INVALIDO)
1 S EAC PE 7 2 PUC SAI IMPRIMI HA CONSOLE
166 EftE 80 Li PO * ZERft ACUMULADOR
ife? E AP 9D PARE * RARA
i se E80 0 ? P A... IQNfiR E IGNORA 0 CARA ER
169 EB2 9E ACH T RI * C INDICEDIG1T0 CONVERTIDO
E'83 OE 7 C PL LECONV 4 0GA HO ACC E VOLTA
170 ft

1 ? i ES5 8 6 BRANCO NG * RETORNA C7 -1


t?2 EB6 OE 7 C PLft LECOHV SE FOR BRfiHCO OU RETURN
73 m
1 74 08 D OD AP PC BA CARI /OD SAI
175 EBA FE ?2 PUC SAI RETURN
176 EBC OA Oh CARI /OA SA
1 77 E BE FE & ;
PUC S DOIS
1 78 ECO FE y n
r

S fc-
PUC SA LIMEFEE&S
i?t EC2 OE 0 1 PL LEENDER VOLTA A LER ENDEREO.
I 80 m

i eI * 8UPPERS E CONSTANTES
102 *
183
1 S4 EC4 00 ACC OEFC O P, SALVAR ACUMULADOR
es E5 30 61 G 1 1 OS VE PC 90
1 86 EC6 3 2 OEFC #1
1 87 ec? 32 OEFC 02
ts-g E C8 33 DEFC #3
1 89 EC9 3 4 OEFC M
190 E CA 3 5 OEFC ts
91 EC8 3 6 OEFC 9
i92 ECO 3? DEFC 9?
193 C D 38 0EFC 08
194 ECE 19 DEFC 09
195 E CF DEFC41
96 EDO OEFC42 08
t EM 4 39? DEFC tc
! ED2 4 4
$8 DEFC 0D
199 ED3 45 DEFC 0E
2 00 EP4 4 6 DEFC 0F
ll*i*S!i*liIiSffi!I88!S!i8SS88# n i 000 FIM
A

h) Exemplos de Programa s Relocveis

COM 090 04 T
SUB *** EXT
ftfif *** EXT
CAF *** EXT
SEM # EXT
AT 00 ftSS
f I. S 0 i 2
ACF OOft fliS
Of U 012 AS8

/oo SI

PAS802

1 tSLT
2 000 SUBR COSEM
3 * H :
- -
Cft -

A 0 C0SEN0 MO PTliHC
4 * !*ELfl :es<x )=* sEH< Pt/2 X )
5
6 000 EMT COSEM
7 000 EXT SU8
0 0 00 EXT ARXftCF
f 0 00 EXT CARA CP
10 000 EXT SEN
ii 000 00 00 COSEU PIA 0
l 002 PO 08 X poe ftSCf
13 004 01 OEFC 1
14 008 00 CE EFE XAMT
IS- 00? P 0 00 X pyc CARftCF
IS 009 0! DfifC t
1? M 00 2 ft de fe PI8&0IS
! 8 ooc FO- 00 X PUC ti
19 OOE FO 0 0 X PUS SEM
20 010 00 0 0 R PLA COSEM
21 OOft ACF E8U /OOft
22 OOE MA MT EQU /OOE
23 012 OF LOU :

:y /0 12
24 012 64 PI 880 18 f-EFC /4
25 013 8? *FC /?
26 014 00 f FC /DO
2.7 015 01 S C /OI
28 000
61 V 000 SNI
I $*A * ** EXT
nm *** EXT
MAK t EXT
T AS n- * EXT
ARF *** EXT
SCI * * EXT
COM -** EXT
* r
*01 1 X
SAP IXT
HL *** t*T
TC * IX T
tm St* trt
tm *** IXT
tf KT
or i 8 Alt
ise 1? IS
Ml Olft li
ACF OOA AS
HAT cot 18
6PT S 81
001 ou
861 0?l
0i CA
11 3f 016
1* 0#8
011

/oo II

MtiM
& t i #1 !$
!
A. 25

I 08 LT
a 0 00 SUBR D I V
3
4 % &! V ROTIMfi DE DIVISO EH PONTO FLUTUANTE
5 * ACF * ACF/HANT
6 *
? 000 cnt 01
8 0 00 EXT SALVA
f 000 EXT NO RH
10 000 EXT NAOABEH
ii 0 00 EXT TAB
l 000 EXT ARHftCF
11 000 EXT S&NAL
14 000 EXT COHPLEM
IS 000 EXT tO HA TS I

1* 000 EXT CA Ru CF
1 ? 000 EXT SHIFtL
19 000 EXT T AC
tf 000 XT SHIFTR
20 000 EXT POIS IN
ti 000 EXT RET
22 oia OFtoy . Efl /c*it
3 01? 2ER0 eau /Oi?
'14 0!A F E8U /0 1

28 OCA ACF tou /OOA


U COE mm EQil / COE
2? Olfc DFLOAT EOU /QIC
28 *
2t 000 oo 00 01 PLA 0
30 002 FO 0 0 X pue SALVA SftLVfi ACC EXT
j * NDICE. T , V
31 004 ao LI li PO 2 ERA -SE 0
32 005 20 1 2 ARM OFLOW IH01CA&0R DE OVERFLOU
33 00? FO OS X PU NORH HORHALIZA-SE flCF E ftftHT
14 00* 40 1? CftR ZERO
38 081 SQ 1 6 R PLAZ QUI ft CF # 0 E HANTft * VA I P/QUI
3S OOft OS FE SOHI -2
I? mv 02 CHP i

11 ote 80 70 R PLAZ 50 SE ACFG,fif P/ CO,


1? Oit FO 00 X WG HADABEH SE HAHT 0 Vftl NADABEH.
0 014 00 7 1 r-Lft flO 6 DEPOIS Vftl P/ CO,
41 OI F 0 00 X QUI PUC TAS TROCA ACF COM HANT
4 018 FO 00 X PUC RMACf ARHAZENA ACF
43 01 01
ft DEFC 1 EH F .

44 Oit 00 IA PL F
43 0iD 40 OD CAR ftCF-i-3 SUBTRASSE EXPOENTE DO D IV IS
41 OIF 83 CMP2 DO EXPOENTE DO DIVIDENDO
4? ao 00 ! i SOR HANT+3
48 028 fO ST 0 SE HOUVE OVERFLOU*
4f 023 FO 00 X PUC NADABEH VftlPARA Hft&fiBEH,
50 025 to 51 R mn 00 $4 1 SENO# GUARDA RESULTADO
St 0 2? FO 00 X PUC iCHAL FA2 PRODUTO DOS SINAIS.
52 029 FO 00 X PUC 30HPLEH COMPLEMENTA ACFC DIVISOR ) ,

53 028 FO 00 X PUC TAB DESTROCA ACF E AHT.


m 05 Dh 1? CASI 23
m 02F ? Tfil i, 0 0P SER A FEITO 24 VEZES,
m 030 FO 00 X ORE PUC ft MA CF SALVA ULTIMO RESTO
5? 032 Oi DFC DAS SUBTRAES SUCESSIVAS
58 031 00 IE f DF LO AT EH DFLfiT
5f 015 ti UH
9 Oit ff Tft EXT * I
A, 26

i I 03? FO 00 M PUC SQHATR1 A Cf * ACF - | A MT


033 40 fi CflR AGP
3 038 02 CMF1 SE ACF >0,
fc4 03C AO 45
S.

K PL AN YES VAX PARA YE$


S 036 90 LIMPO SE ftCr < 0, EXT* Oi EXT IM&ICft
036 ff TR 6 SI DIVISOR COUBE NO DIVIDENDO.
f 040 FO 00 X PUS CASA CF CftREC RESTO ANTERIOR
$.$ 42 01 DEfC j

6$ 041 00 1E PLS DFLOAT


70 948 ii Y8 UM SHIFTft ACF fi ISA. DE UM BIT,
ts
y 1 046 f0 00 #% PUC 8 Ml r TL
78 048 FO 00- X PUC T9C JOCEMT PARCIAL VEM fi ACF
y jj $ E RESTO VAI DE ACF P/ :

?4 Q4ft ii UM f MIFTA P/ ESfi. Ml UM 81 Ti


*f $ 049 FO QC X puo IfllFTL a
? 'S 0 4& ff Tftf I N TROOU 2 NOULTIMO BIT &ft .

g
SSJ

0 4 00 0 SQW ACF*2 DIREITA, 0 81 T CUE AC AS


?t 050 20 OC mn %CF*2 &E SER CALCULADO
79 052 Fi 00 X PUC T AC 8UCIEXT PARCIAL VAI P/ CFL
80 1 RESTO VOLTA fi ACF
81 054 EC- 00 sus 0
82 OS* OO & % Ifj

R PLA HOE FIM m LQOP,


S3 058 FO m X pyc TftC CARREGA RESULTADO EM ACF
84 05fl DA 00 tos CARI 0 SOS+i CONTINHA DIFERENA DOS
88 090 0 OD mm ftCF+3 EXPOENTES E ESTA VAI P/ACF+3
8 056 40 Oft CftR ACF
0 f 060 2 CMP1 SE PRIMEI tO 81 T 6E ACF FOR 1
Ai y 061 AO 6E R PL AH GOL TEMOS CUE
89 063 81 UM 6HIFTAS P/D IR. UM BIT,
90 O 4 r y 00 X PUC SHIFTR
91 0 ii 40 00 C9K ACF^S INCREMENTAR EXPOENTE
ri Oi li !MC
93 0 to 8T 0
f 049 PO 00 X PUC NA&fiiEfi Sf TRANSBORDOU, VAI fi HAOAO
98 QIC 80 AR* ACF+J
fi 061 PS 00 X GOL PUC 0IN COLOCA SINAL HO RESULTADO,
f? 070 PO 00 X PUC NRM NORMALIZA,
fi o?a PO 00 X PUC T9*
ff 074 FO 00 X PUC CURA CF RESTAURA 0 DIVISOR
M*fc

i O 076 0 i DEFC EM HAXT,


i 01 sr? 00 1, ft PLA F
102 0 79 FO 00 X PUC TAS
103 078 PO Ofi X QO PUC REST RESTAURA ACC, EXT, NDICE, T, V,
i 04 070 00 00 R Pt 9 &IV E P ROM TO,
105 000 FIM

También podría gustarte