1. Linguagem de Montagem
1.1. CPU é capaz de executar instuções de máquina
1.1.1. números binários armazenados no computador
1.2. programa em linguagem binária
1.2.1. propenso a erros
1.2.2. notação hexadecimal para programar
1.2.2.1. programa que traduza hexadecimal para binário
1.3. nome simbólico para cada instrução
1.3.1. cada linha
1.3.1.1. 3 campos separados por espaços
1.3.1.1.1. endereço
1.3.1.1.2. símbolo
1.3.1.1.3. endereço ou valor
1.3.2. ainda é ineficaz
1.3.2.1. endereço absoluto para cada palavra
1.3.2.1.1. utilização de endereços simbólicos
1.4. traduzida através de um montador
1.4.1. traduz mnemônicos
1.4.2. associa endereços simbólicos com endereços absolutos
1.5. primeiro passo para linguagens de alto nível
2. Tipos de Instruções
2.1. Instruções de desvio
2.1.1. um dos operandos
2.1.1.1. endereço da próxima instrução
2.1.2. desvio condicional
2.1.2.1. contador do programa atualizado
2.1.2.1.1. apenas se condição é satisfeita
2.2. Instruções de salto
2.2.1. instrução de transferência de controle
2.2.2. endereço de desvio implícito
2.2.3. execução de uma instrução da sequência deve ser omitida
2.3. Instruções de chamada de procedimento
2.3.1. procedimento
2.3.1.1. subprograma autocontido
2.3.1.2. incorporado em programa maior
2.3.1.3. pode ser chamado em qualquer ponto do programa
2.3.2. instrui o processador a executar o procedimento
2.3.2.1. depois retornar ao ponto da chamada
2.3.3. economia de memória
2.3.4. modularidade
2.3.5. envolve 2 instruções básicas
2.3.5.1. instrução de chamada
2.3.5.1.1. desvia a execução
2.3.5.2. instrução de retorno
2.3.5.2.1. provoca o retorno da execução
3. Máquina de Von Neumann
3.1. Entrada
3.1.1. Memória
3.1.1.1. Processador
3.1.1.1.1. ULA
3.1.1.2. Saída
4. Características de Instruções de Máquina
4.1. operações que a CPU realiza
4.2. Conjunto de instruções
4.2.1. instruções distintas que CPU executa
4.3. Elementos
4.3.1. Código de operação
4.3.1.1. informação necessária para que a CPU possa executá-la
4.3.1.2. especifica a operação
4.3.2. Referência a operando fonte
4.3.2.1. dados de entrada para a operação
4.3.3. Referência a operando de destino
4.3.4. Endereço da próxima instrução
4.3.4.1. memória principal ou virtual
4.4. Processo
4.4.1. Busca de instrução
4.4.1.1. Decodificação da operação da instrução
4.4.1.1.1. Cálculo de endereço de operando
4.5. Representação
4.5.1. dividida em campos
4.5.1.1. elementos da instrução
4.5.2. instrução é lida em um registrador de instruções
4.5.3. códigos de operação são representados por abreviações
4.5.3.1. mnemônicos
4.5.3.1.1. relativo a memória
4.5.3.1.2. exemplos
4.5.4. 16 bits
4.5.4.1. 4 bits
4.5.4.1.1. Código de operação
4.5.4.2. 6 bits
4.5.4.2.1. Referência a operando
4.5.4.3. 6 bits
4.5.4.3.1. Referência a operando
4.6. Tipos
4.6.1. operações são expressas de maneira básica
4.6.1.1. envolve movimentação de dados "de e para" registradores
4.6.1.1.1. CPU
4.6.2. Processamento de dados
4.6.2.1. instruções
4.6.2.1.1. aritméticas
4.6.2.1.2. lógicas
4.6.3. Armazenamento de dados
4.6.3.1. instruções de memória
4.6.3.1.1. movem dados entre a memória e os registradores
4.6.4. Movimentação de dados
4.6.4.1. instruções de E/S
4.6.5. Controle
4.6.5.1. instruções de
4.6.5.1.1. teste
4.6.5.1.2. desvio
4.7. Número de endereços
4.7.1. descreve uma arquitetura
4.7.2. maioria das instruções
4.7.2.1. 1, 2 ou 3
4.7.3. endereço da próxima instrução é implícito
4.7.4. formato de instrução com nenhum endereço
4.7.4.1. se aplica a uma organização de memória especial
4.7.4.1.1. pilha (stack)
4.7.5. maioria das máquinas modernas
4.7.5.1. instruções de 2 ou 3 endereços
4.7.5.1.1. flexibilidade
4.7.5.1.2. capacidade para usar múltiplos registradores
4.7.6. outros fatores que influem na escolha
4.7.6.1. endereço se refere a
4.7.6.1.1. uma posição de memória
4.7.6.1.2. um registrador
4.7.6.2. variedade de modos de endereçamento
4.8. Projeto do conjunto de instruções
4.8.1. muito complexo
4.8.1.1. afeta diversos aspectos do sistema
4.8.2. Repertório de operações
4.8.2.1. operações fornecidas
4.8.2.2. quão complexas elas serão
4.8.3. Tipos de dados
4.8.3.1. quais operações são efetuadas
4.8.4. Formatos de instrução
4.8.5. Registradores
4.8.5.1. propósito de cada um
4.8.6. Endereçamento
4.8.6.1. como o endereço de um operando pode ser especificado
5. Tipos de Operandos
5.1. números armazenados no computador são limitados em
5.1.1. Magnitude de números representáveis
5.1.1.1. positivos
5.1.1.2. negativos
5.1.2. Precisão
5.1.2.1. número de pontos flutuantes
5.2. Caracteres
5.2.1. Alfabeto de Referência Internacional
5.2.1.1. IRA
5.2.1.2. ASCII
5.2.1.2.1. American Standard Code for Information Interchange
5.2.2. EBCDIC
5.2.2.1. Extended Binary Coded Decimal Interchange Code
5.3. Dados lógicos
5.3.1. unidade de n bits
5.3.1.1. composta de n itens de dado
5.3.1.1.1. 1 bit cada
5.4. O tipo de um dado é determinado pela operação efetuada sobre ele
5.4.1. comum em linguagens de máquina
6. Tipos de Operações
6.1. Operações de transferência de dados
6.1.1. tipo mais fundamental de instrução de máquina
6.1.2. informações que deve especificar
6.1.2.1. endereços dos operandos
6.1.2.1.1. fonte
6.1.2.1.2. destino
6.1.2.2. tamanho dos dados a serem transferidos
6.1.2.3. modo de endereçamento de cada operando
6.2. Operações aritméticas
6.2.1. soma
6.2.2. subtração
6.2.3. multiplicação
6.2.4. divisão
6.3. Operações lógicas
6.3.1. NOT
6.3.2. AND
6.3.3. OR
6.3.4. XOR
6.3.5. NAND
6.3.6. funções de
6.3.6.1. deslocamento
6.3.6.2. rotação
6.4. Operações de conversão
6.4.1. mudam ou operam sobre o formato de dados
6.5. Operações de E/S
6.5.1. ações específicas determinadas por
6.5.1.1. parâmetros
6.5.1.2. códigos
6.5.1.3. palavras de comando
6.6. Operações de controle de sistema
6.7. Operações de transferência de controle
6.7.1. alterar a sequência de execução de instruções
6.7.2. CPU
6.7.2.1. atualiza contador de programa com o endereço
6.7.3. razões para utilização
6.7.3.1. repetida execução das mesmas instruções
6.7.3.2. tomada de decisões
6.7.3.3. implementação de programas complicados