Escolar Documentos
Profissional Documentos
Cultura Documentos
Hlio Lopes
8/14/13
Introduo
INF1005 Programao I
Prof. Hlio Lopes
lopes@inf.puc-rio.br
sala 408 RDC
introduo
tpicos
modelo de computador
o que um programa
um programa na memria
decifrando um cdigo
referncia
Captulo 1 da apostila
8/14/13
modelo de um computador
hardware - componentes fsicos
software - programas
computador hipottico
endereo
contedo
(valor)
memria
posies com endereos 0 a n
registrador (register)
armazena resultado de operao
instrues
0
register
instruo
descrio
read pos
write pos
store pos
8/14/13
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
5
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
7
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
2
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
variveis
valor1,
valor2,
valor3
incio
leia
valor1
valor2
=
2.5
valor3
=
valor1
+
valor2
escreva
valor3
fim
O que um programa?
EX. 01
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
>
storeconst 2.5 1
end.
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
reg.
reg.
reg.
reg.
val.
>
8/14/13
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
storeconst 2.5 1
end.
>
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
???
???
???
???
???
???
???
reg.
???
reg.
???
reg.
???
reg.
???
>
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
>
storeconst 2.5 1
end.
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
???
???
???
???
???
???
???
reg.
???
reg.
???
reg.
???
reg.
???
>
8/14/13
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
storeconst 2.5 1
end.
> 3
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
???
???
???
???
???
???
???
reg.
???
reg.
???
reg.
???
reg.
???
> 3
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
>
3
storeconst 2.5 1
end.
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
???
???
???
reg.
???
reg.
???
reg.
???
reg.
>
3
3
???
8/14/13
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
storeconst 2.5 1
end.
> 3
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
???
???
???
0
reg.
3
???
0
reg.
???
reg.
???
reg.
> 3
3
???
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
>
3
storeconst 2.5 1
end.
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
2.5
2.5
2.5
reg.
???
reg.
???
reg.
???
reg.
> 3
3
???
8/14/13
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
storeconst 2.5 1
end.
> 3
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
2.5
2.5
2.5
0
reg.
3
???
0
reg.
???
reg.
???
reg.
> 3
3
???
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
>
3
storeconst 2.5 1
end.
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
2.5
2.5
2.5
reg.
???
reg.
???
reg.
5.5
reg.
> 3
3
5.5
8/14/13
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
storeconst 2.5 1
end.
> 3
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
???
???
2.5
2.5
2.5
0
reg.
3
???
0
reg.
???
reg.
5.5
reg.
> 3
3
5.5
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
>
3
storeconst 2.5 1
end.
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
5.5
???
2.5
2.5
2.5
reg.
???
reg.
???
reg.
5.5
reg.
> 3
3
5.5
8/14/13
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
storeconst 2.5 1
end.
> 3
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
5.5
???
2.5
2.5
2.5
0
reg.
3
???
0
reg.
???
reg.
5.5
reg.
> 3
3
5.5
O que um programa?
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
1.
2.
3.
4.
5.
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read 0
>
3
storeconst 2.5 1
end.
val.
end.
add 0 1
val.
store 2
end.
val.
write 2
end.
val.
???
???
???
???
???
???
???
5.5
???
2.5
2.5
2.5
reg.
???
reg.
???
reg.
5.5
reg.
>
3
5.5
3
5.5
8/14/13
dvidas?
O que um programa?
EX. 02
sequncia de instrues
exemplo: programa que escreve na tela o resultado
da soma de 2.5 mais um nmero lido do teclado
Programa visto
anteriormente:
Este programa
tambm funciona?
Este programa
tambm funciona?
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
read
0
storeconst
2.5
1
add
0
1
store
0
write
0
read
0
storeconst
2.5
1
add
0
1
store
0
write
2
sim
sim
no
no
10
8/14/13
a9
0 0 0 0 0 0 0 0
nmero seria:
9 9 9 9 9 9 9 9
1 0 0 0 0 0 0 2
1 0 0 0 0 4 5 7
11
8/14/13
S
I
I
I
I
parte fracionria
F F F
1 0 2 5 7 4 0 0
9 9
0 0 0 0 0 0 0 1
Ms
M
M
M
M
Es
E
E
1 2 5 7 4 0 0 3
0 9 9 9 9 0 9 9
E o menor positivo?
0 0 0 0 1 1 9 9
12
8/14/13
0 2 9 3 7 0 0 1
read
0
storeconst
2.5
1
add
0
1
store
2
write
2
0
0
0
0
0
0
0
0
#
cdigo
de
'read'
:
0
0
0
0
0
0
0
0
0
#
0
0
0
0
0
0
0
0
2
#
cdigo
de
'storeconst'
:
2
0
2
5
0
0
0
0
1
#
2.5
(valor
real)
0
0
0
0
0
0
0
1
#
1
0
0
0
0
0
0
0
3
#
cdigo
de
'add'
:
3
0
0
0
0
0
0
0
0
#
0
0
0
0
0
0
0
0
1
#
1
0
0
0
0
0
0
0
7
#
cdigo
de
'store'
:
7
0
0
0
0
0
0
0
2
#
2
0
0
0
0
0
0
0
1
#
cdigo
de
'write'
:
1
0
0
0
0
0
0
0
2
#
2
13
8/14/13
dvidas?
decifrando o cdigo
EX. 03
00000000
00000000
00000000
00000001
00000005
00000000
00000001
00000007
00000002
00000001
0 0 0 0 0 0 0 2
_________________________
end
_________________________
_________________________
_________________________
_________________________
_________________________
_________________________
P1
P2
P3
P4
P5
P6
P7
reg
descrio em portugus
__________________________________________________
__________________________________________________
__________________________________________________
14
8/14/13
decifrando o cdigo
EX. 04
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
7
0
2
1
1
5
0
1
7
2
1
2
cdigo equivalente
_________________________
end
_________________________
_________________________
_________________________
_________________________
_________________________
_________________________
P1
P2
P3
P4
P5
P6
P7
reg
descrio em portugus
__________________________________________________
__________________________________________________
__________________________________________________
dvidas?
Prof. Hlio Lopes
lopes@inf.puc-rio.br
sala 408 RDC
15