Linguagens de Montagem
Linguagens de Montagem,
Edição 1
By Ricardo de Oliveira Anido

Data de publicação : 15 Jun 2016

Sua solicitação será avaliada de acordo com nossa cota e a relação curso x disciplina ministrada.

Descrição

Este livro procura apresentar linguagens de montagem com a perspectiva de que elas são um ótimo meio de iniciar o estudo de arquitetura de processadores, e iniciar o estudo de como funcionam linguagens de alto nível.

O projeto apresenta diversos exemplos de como construções de linguagens de mais alto nível são implementadas em linguagem de montagem (comandos repetitivos, comandos de seleção como IF ou SWITCH, passagem de parâmetros, recursão, etc).

Um outro ponto é o conteúdo através de dois processadores: um fictício e mais simples, que permite entender como o processador funciona (codificação de instruções trivial, conjunto simples de instruções); e um processador comercial muito utilizado atualmente (ARM), que é no entanto muito difícil de apresentar sem uma introdução sobre funcionamento de processadores e codificação, pois sua arquitetura é muito especializada e otimizada. É também o processador mais utilizado em tablets e celulares como o iPhone.

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
Detalhes do Produto
ISBN: 9788535285208
Nº de páginas: 304
Preço de varejo sugerido: R$101,00