Linguagens de Montagem

Linguagens de Montagem Edição 1

Autor(es): By Ricardo de Oliveira Anido
ISBN: 9788535285208
Data de publicação : Jun 15, 2016
Nº de páginas: 304
Preço de varejo sugerido:
  • BRL: R$50,50
  • Descrição
  • Sobre o autor(es)
  • SUMÁRIO
Descrição

Características

  • Kit de desenvolvimento em Java, com possibilidade de controlar a execução (passo a passo, por exemplo), com visualização do código sendo executado e vários "dispositivos" configuráveis: arrays de leds de várias cores, displays de sete segmentos, LCD (16x2 até 20x4). O Kit permite uma grande variedade de experimentos, tanto para o processador didático quando para o processador ARM.
Sobre o autor(es)
By Ricardo de Oliveira Anido
SUMÁRIO
Sumário
1 Organização da memória e representação digital da informação 1
1.1 Organização da memória de computadores . . . . . . . . . . . . . . . . 1
1.2 Representação de inteiros sem sinal . . . . . . . . . . . . . . . . . . . 3
1.3 Representação de números fracionários . . . . . . . . . . . . . . . . . 20
1.4 Representação de caracteres . . . . . . . . . . . . . . . . . . . . . . . 25
1.5 Ordem de bytes na palavra . . . . . . . . . . . . . . . . . . . . . . . . 28
1.6 Notação de números em programas de computadores . . . . . . . . . . 30
1.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2 Introdução à organização de computadores 33
2.1 Organização de computadores . . . . . . . . . . . . . . . . . . . . . . 33
2.2 O processador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.3 Modos de endereçamento . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.4 Um pequeno programa . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3 Introdução a linguagens de montagem 43
3.1 Linguagens de montagem . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Como funciona um montador . . . . . . . . . . . . . . . . . . . . . . . 51
3.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4 Transferência de dados 59
4.1 Copia registrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.2 Carrega registrador . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.3 Carrega registrador com byte . . . . . . . . . . . . . . . . . . . . . . . 68
4.4 Armazena registrador . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.5 Armazena byte de registrador . . . . . . . . . . . . . . . . . . . . . . . 72
4.6 Usos de modos de endereçamento por linguagens de alto nível . . . . . 74
4.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5 Instruções aritméticas e desvios 79
5.1 Adição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2 Subtração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3 Instruções de desvio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4 Nova instrução aritmética: comparação . . . . . . . . . . . . . . . . . 89
5.5 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6 Instruções lógicas e de deslocamento 103
6.1 Instruções lógicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.2 Instruções de deslocamento . . . . . . . . . . . . . . . . . . . . . . . . 112
6.3 Instruções de rotação . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7 Procedimentos e funções 123
7.1 Procedimentos em linguagens de programação . . . . . . . . . . . . . . 123
7.2 Chamada e retorno de procedimento . . . . . . . . . . . . . . . . . . . 130
7.3 Procedimentos com parâmetros . . . . . . . . . . . . . . . . . . . . . . 134
7.4 Retorno de valores de funções . . . . . . . . . . . . . . . . . . . . . . 139
7.5 Passagem de parâmetros por referência e por valor . . . . . . . . . . . . 144
7.6 Variáveis locais a procedimentos . . . . . . . . . . . . . . . . . . . . . 147
7.7 Recursão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
7.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
8 Entrada e saída 155
8.1 Arquitetura de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
8.2 Instruções de entrada e saída . . . . . . . . . . . . . . . . . . . . . . . 156
8.3 Sincronização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.4 Interrupções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
8.5 Exceções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
8.6 Interrupções e o sistema operacional . . . . . . . . . . . . . . . . . . . 173
8.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Estudo de caso: o processador ARM 181
9 ARM: características gerais 183
9.1 O processador ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.2 Modos de Operação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.3 Registradores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
9.4 Instruções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
9.5 Arquitetura carrega/armazena . . . . . . . . . . . . . . . . . . . . . . . 191
9.6 Unidade de deslocamento . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.7 Convenções do montador . . . . . . . . . . . . . . . . . . . . . . . . . 192
9.8 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
10 Transferência entre registrador e memória 195
10.1 Codificação das instruções de carga e armazenamento de registrador . . 195
10.2 Endereçamento direto . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
10.3 Modo de endereçamento indireto por registrador . . . . . . . . . . . . . 197
10.4 Modos de endereçamento pré-indexados . . . . . . . . . . . . . . . . . 198
10.5 Modos de endereçamento pós-indexados . . . . . . . . . . . . . . . . . 202
10.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
11 Desvios e processamento de dados 207
11.1 Desvios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
11.2 Processamento de dados . . . . . . . . . . . . . . . . . . . . . . . . . 209
11.3 Multiplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
12 Transferências múltiplas, pilhas e procedimentos 225
12.1 Instruções para transferências múltiplas . . . . . . . . . . . . . . . . . 225
12.2 Procedimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
12.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
13 Entrada, saída e interrupções 239
13.1 Instruções para entrada e saída . . . . . . . . . . . . . . . . . . . . . . 239
13.2 Interrupções e exceções . . . . . . . . . . . . . . . . . . . . . . . . . . 241
13.3 Chamada a sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
13.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
14 Montadores, ligadores e carregadores 251
14.1 Montando um programa dividido em módulos . . . . . . . . . . . . . . 251
14.2 Seções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
14.3 O carregador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
14.4 Bibliotecas e ligação dinâmica . . . . . . . . . . . . . . . . . . . . . . 259
Apêndices 261
A Montador para LEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
B Simuladores para LEG e ARM . . . . . . . . . . . . . . . . . . . . . . 263
C Dispositivos de E/S para os simuladores . . . . . . . . . . . . . . . . . 272
D Exemplos de uso das ferramentas . . . . . . . . . . . . . . . . . . . . . 279
E Lista das instruções do LEG . . . . . . . . . . . . . . . . . . . . . . . 282