Sâmia Rodrigues Gorayeb Arquitetura de Computadores Linguagem de Máquina
Arquitetura de Computadores Agenda: Linguagem de máquina 1. Introdução 2. Característica 3. Programas Compilados 4. Programas Interpretados 5. Tipos de linguagem 6. Funcionamento 7. Programação em linguagem 8. Itens 9. Conclusão 10.Exercício
Introdução É um conjunto particular de instruções que um computador possui. Na prática, as pessoas não escrevem instruções diretamente em linguagem de máquina mas em uma linguagem de programação, que são posteriormente traduzidas para linguagem de máquina através de programas especiais, como interpretadores e compiladores. É também conhecido como código de máquina e usa diretamente bits 1 e 0.
Característica Todo computador possui um conjunto de instruções que seu processador é capaz de executar. Essas instruções são, chamadas de código de máquina, são representadas por sequências de bits, normalmente limitadas pelo número de bits do registrador principal da CPU.
Característica (cont.) As instruções correspondem a seqüencias muito simples de operações, como transferir um dado em memória para a CPU ou somar dois valores e são normalmente interpretadas por micro- código.
Característica (cont.) Um programa em código de máquina consiste de uma sequência de números que significam uma sequência de instruções a serem executadas. Normalmente a representação do código de máquina é feita por meio de números (opcodes) constantes e variáveis em sistema binário ou sistema hexadecimal. Alguns computadores também tem seu opcodes representados no sistema octal.
Característica (cont.) Microprocessadores tem normalmente seus códigos de operação como múltiplos de 2, 8 e 16, pois usam arquiteturas com registradores de 8,16,32,64,128 ou 256 bits. Porém, existem máquinas com registradores de tamanho diferente.
Característica (cont.) Os programas de computador raramente são criados em linguagem de máquina. Normalmente eles são compilados ou interpretados.
Programas Compilados Devem ser traduzidos (por compiladores) para serem executados diretamente pelo computador. Um programa é traduzido quando um novo programa equivalente ao fonte é criado, em linguagem de máquina. Por exemplo, o compilador pega seu programa fonte e cria um novo programa equivalente ao seu em linguagem de máquina.
Programas Interpretados Não são executados diretamente, mas sim por meio de um interpretador, esse sim rodando diretamente em código de máquina e previamente compilado. Cada instrução é interpretada com instruções em Linguagem de Máquina equivalente, no momento da execução.
Tipos de Linguagem Linguagens de baixo nível: se aproximam bastante da linguagem de máquina. Ex: Assembly. Linguagens de alto nível: são baseadas em princípios abstratos e se distanciam bastante dos detalhes da operação da máquina. Ex: Java.
Funcionamento A execução das instruções é tal como ler um livro. Apesar da pessoa normalmente ler cada palavra e linha em sequência, é possível que algumas vezes ela volte para pontos anteriores do texto de interesse ou passe sessões não interessantes. Da mesma forma, um computador que segue a arquitetura de von Neumann executa cada instrução de forma sequencial, da maneira como foram armazenadas na memória.
Funcionamento (cont.) Mas, através de instruções especiais, o computador pode repetir instruções ou avançá-las até que alguma condição seja satisfeita. Isso é chamado controle do fluxo e é o que permite que o computador realize tarefas repetitivamente sem intervenção humana.
Programação em Linguagem de Máquina Programar em linguagem de máquina costuma ser exaustivamente difícil, pois requer o conhecimento dos opcodes, dos operandos e dos formatos de cada instrução.
Programação em Linguagem de Máquina (cont.) Por esse motivo, foi criada uma linguagem de programação chamada linguagem de montagem (Assembly Language), composta de códigos mnemônicos que, do ponto de vista técnico, é tão próxima do processador quanto o código de máquina, mas é humanamente mais fácil de se compreender uma vez que seus códigos são geralmente acrônimos do inglês.
Programação em Linguagem de Máquina (cont.) Exemplo mov de mover, rep de repetição e assim por diante. Na verdade, mesmo Assembly só é usado em ocasiões onde o uso de uma linguagem de programação de alto nível é impossível ou proibitivo.
Itens Microprocessador BIOS
Processadores Percebem somente sinais elétricos, distinguindo-os os em duas categorias: nível alto "high" H, tensão elétrica alta, e nível baixo "low" L, tensão elétrica baixa Qualquer comunicação precisa ser reduzida exclusivamente a esses dois sinais. O primeiro passo é associar H com bit 1 e L com bit 0, a seguir elaborando códigos lógicos binários baseados nestes dígitos 1 e 0.
Processadores (cont.) São projetados para executar uma lista fixa de instruções, e isto é tudo o que fazem. Cada instrução é um conjunto de bits (tipo 1101 1001). Estas instruções são gravadas na memória como sinais elétricos H/1 e L/0 e ao acessá-las o processador percebe os correspondente sinais elétricos H e L e os processa considerando-os os por uma lógica de bits 1 e 0.
Processadores (cont.) O programador escreve bits 1 e 0 correspondentes a uma sequência de instruções e por algum dispositivo grava-os na memória em endereços seguidos. O microprocessador lê estas instruções, começando do menor endereço até o maior (existindo instruções de desvio da sequência) e executa-as, as, uma a uma.
Conclusão: É uma programação altamente especializada, exigindo conhecimentos profundos do processador e de Eletrônica Digital, o que escapa à maioria dos usuários.
Exercício: 1. O que é linguagem de máquina? 2. Cite uma característica de linguagem de máquina. 3. O que é um programa compilado? 4. O que é um programa interpretado? 5. Quais são os tipos de linguagens existentes? 6. Explique como é o funcionamento da linguagem de máquina.
Exercício: 7. O que é necessário para programar em linguagem de máquina? 8. Cite um item que utiliza linguagem de máquina.