Title: Cap
1Capítulo I Conceitos Primários
- 1.1 Estrutura de um computador
- 1.2 Informações manipuladas por um computador
- 1.3 Evolução das linguagens de programação
21.3 Evolução das linguagens de programação
- 1.3.1 A linguagem de máquina
- Linguagem de máquina conjunto de instruções que
o hardware de um computador é capaz de realizar - Cada instrução é expressa por uma sequência de
bits - Seja um computador bem primitivo mostrado a
seguir
3RAM 2048 (2 K) palavras de 16 bits Endereços
variam de 0 a 2047 ocupam 11 bits
CPU
Circuito de acesso à memória
4Uma instrução ocupa 16 bits
CPU
Circuito de acesso à memória
5Os dados são inteiros em comp-2 de 16 bits Os
valores estão no intervalo -32768, 32767
CPU
Circuito de acesso à memória
6Registrador de propositos gerais AC (16
bits) AC Accumulator
CPU
Circuito de acesso à memória
7Em toda operação na ALU Operandos em AC e DR
- Resultado no AC
CPU
Circuito de acesso à memória
8Registradores de propósitos específicos DR, AR,
PC, IR
CPU
Circuito de acesso à memória
9DR Data register AR Address register
PC Program counter IR Instruction register
CPU
Circuito de acesso à memória
10DR (16 bits) contém o que será escrito em alguma
palavra da RAM ou Recebe o que é lido de alguma
palavra da RAM
CPU
Circuito de acesso à memória
11DR Pode conter uma instrução (campos
codop 5 bits e ender 11 bits) ou um dado
(16 bits)
CPU
Circuito de acesso à memória
12AR (11 bits) contém o endereço da palavra da RAM
a ser acessada, seja para leitura ou para escrita
CPU
Circuito de acesso à memória
13PC (11 bits) contém o endereço na RAM da próxima
instrução a ser executada
CPU
Circuito de acesso à memória
14IR (5 bits) contém o código da instrução a ser
executada pela unidade de controle
CPU
Circuito de acesso à memória
15- Conjunto de instruções primitivo
Mem (Ender) Palavra da RAM cujo endereço está
no campo ender da instrução
16- Seja um programa para fazer
- Mem(12) ? Mem(10) Mem(11)
- Seja o seguinte conteúdo das palavras 10 e 11 da
RAM
Endereço Conteúdo em binário Conteúdo em decimal Ação
0 00001 00000001010 1 10 AC ? Mem(10)
1 00100 00000001011 4 11 AC ? AC Mem(11)
2 00010 00000001100 2 12 Mem(12) ? AC
Endereço Conteúdo em binário Conteúdo em decimal
10 0000000000011001 25
11 0000000000001110 14
Seja tudo isso guardado na RAM do computador
17Os conteúdos aparecem em decimal por razões
didáticas Mas, na realidade, eles ficam em
binário
CPU
Circuito de acesso à memória
18Iniciar a execução pelo endereço zero
CPU
Circuito de acesso à memória
0
19AR ? PC
CPU
Circuito de acesso à memória
0
20AR ? PC DR ? Mem(AR)
CPU
1 10
Circuito de acesso à memória
21AR ? PC DR ? Mem(AR) IR ? DR(codop)
CPU
Circuito de acesso à memória
1
22AR ? PC DR ? Mem(AR) IR ? DR(codop) PC ? PC
1 (preparando p/próxima instrução)
CPU
Ocorreu a recuperação da instrução pelo controle
Circuito de acesso à memória
Agora o controle vai interpretá-la
1
0
23Interpretação IR 1 Objetivo AC ? Mem(ender)
CPU
Circuito de acesso à memória
24AR ? DR(ender)
CPU
Circuito de acesso à memória
10
0
25AR ? DR(ender) DR ? Mem(AR)
CPU
25
Circuito de acesso à memória
26AR ? DR(ender) DR ? Mem(AR) AC ? DR
Encerrada a execução da instrução
CPU
25
Circuito de acesso à memória
Começa a recuperação da próxima instrução
27AR ? PC
CPU
Circuito de acesso à memória
1
10
28AR ? PC DR ? Mem(AR)
CPU
25
Circuito de acesso à memória
29AR ? PC DR ? Mem(AR) IR ? DR(codop)
CPU
Circuito de acesso à memória
4
1
30AR ? PC DR ? Mem(AR) IR ? DR(codop) PC ? PC
1
CPU
Circuito de acesso à memória
2
1
31Interpretação IR 4 Objetivo AC ? AC
Mem(ender)
CPU
Circuito de acesso à memória
32AR ? DR(ender)
CPU
Circuito de acesso à memória
1
11
33AR ? DR(ender) DR ? Mem(AR)
CPU
14
Circuito de acesso à memória
34AR ? DR(ender) DR ? Mem(AR) AC ? AC DR
Encerrada a execução da instrução
CPU
25
39
Circuito de acesso à memória
Começa a recuperação da próxima instrução
35AR ? PC
CPU
Circuito de acesso à memória
2
11
36AR ? PC DR ? Mem(AR)
CPU
14
Circuito de acesso à memória
37AR ? PC DR ? Mem(AR) IR ? DR(codop)
CPU
Circuito de acesso à memória
4
2
38AR ? PC DR ? Mem(AR) IR ? DR(codop) PC ? PC
1
CPU
Circuito de acesso à memória
2
3
39Interpretação IR 2 Objetivo Mem(ender) ? AC
CPU
Circuito de acesso à memória
40AR ? DR(ender)
CPU
Circuito de acesso à memória
2
12
41AR ? DR(ender) DR ? AC
CPU
39
Circuito de acesso à memória
42AR ? DR(ender) DR ? AC Mem(AR) ? DR
Encerrada a execução da instrução
CPU
Circuito de acesso à memória
39
A execução do programa continua ...
43- Ciclo de execução das instruções
Falso
CPU ativa?
Verdade
Recuperação
Interpretação
Execução
44Falso
CPU ativa?
Verdade
A execução da instrução stop desativa a CPU
AR ? PC DR ? Mem(AR) IR ? DR(codop) PC ? PC
1
IR
1
4
2
AR ? DR(ender) DR ? Mem(AR) AC ? DR
AR ? DR(ender) DR ? AC Mem(AR) ? DR
AR ? DR(ender) DR ? Mem(AR) AC ? AC DR
45O programador de linguagem de máquina não precisa
saber que existem os registradores de propósitos
específicos DR, AR, PC, IR
CPU
Circuito de acesso à memória
46Basta saber que ele pode manipular o AC por meio
de instruções
CPU
Circuito de acesso à memória
47Seja então a execução, abstraindo-se dos outros
registradores
CPU
Circuito de acesso à memória
48CPU
Circuito de acesso à memória
49CPU
Circuito de acesso à memória
50CPU
Circuito de acesso à memória
51CPU
Circuito de acesso à memória
52CPU
Circuito de acesso à memória
53CPU
Circuito de acesso à memória
54- Programa para somar números inteiros positivos
lidos
55Seja a execução a partir do endereço 0
Números a serem lidos 10, 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
11
56Mem(10) ? 0
Números a serem lidos 10, 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
11
57Mem(10) ? 0
Números a serem lidos 10, 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
11
58Ler (Mem(11))
Números a serem lidos 10, 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
11
59Ler (Mem(11))
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
60AC ? Mem(11)
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
61AC ? Mem(11)
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
62Se AC 0 desviar p/Mem(8)
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
63Se AC 0 desviar p/Mem(8) falso
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
64Se AC lt 0 desviar p/Mem(8)
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
65Se AC lt 0 desviar p/Mem(8) falso
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
66AC ? AC Mem(10)
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
67AC ? AC Mem(10)
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
68Mem(10) ? AC
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
0
10
10
11
69Mem(10) ? AC
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
10
11
70Desviar p/Mem(1)
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
10
11
71Ler(Mem(11))
Números a serem lidos 15, 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
10
11
72Ler(Mem(11))
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
73AC ? Mem(11)
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
74AC ? Mem(11)
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
75Se AC 0 desviar p/Mem(8)
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
76Se AC 0 desviar p/Mem(8) falso
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
77Se AC lt 0 desviar p/Mem(8)
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
78Se AC lt 0 desviar p/Mem(8) Falso
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
79AC ? AC Mem(10)
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
80AC ? AC Mem(10)
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
81Mem(10) ? AC
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
10
10
15
11
82Mem(10) ? AC
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
15
11
83Desviar p/Mem(1)
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
15
11
84Ler(Mem(11))
Números a serem lidos 8, -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
15
11
85Ler(Mem(11))
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
86AC ? Mem(11)
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
87AC ? Mem(11)
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
88Se AC 0 desviar p/Mem(8)
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
89Se AC 0 desviar p/Mem(8) falso
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
90Se AC lt 0 desviar p/Mem(8)
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
91Se AC lt 0 desviar p/Mem(8) falso
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
92AC ? AC Mem(10)
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
93AC ? AC Mem(10)
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
94Mem(10) ? AC
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
25
10
8
11
95Mem(10) ? AC
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
8
11
96Desviar p/Mem(1)
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
8
11
97Ler(Mem(11))
Números a serem lidos -2
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
8
11
98Ler(Mem(11))
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
99AC ? Mem(11)
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
100AC ? Mem(11)
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
101Se AC 0 desviar p/Mem(8)
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
102Se AC 0 desviar p/Mem(8) falso
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
103Se AC lt 0 desviar p/Mem(8)
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
104Se AC lt 0 desviar p/Mem(8) verdade
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
105Escrever(Mem(10))
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
106Escrever(Mem(10))
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
33
107Encerrar a execução
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
33
108Fim da execução
Números a serem lidos
CPU
Circuito de acesso à memória
7
16 10
8
17 0
9
33
10
-2
11
33