Você está na página 1de 5

ASSEMBLY, LINGUAGEM DE PRORAMAÇÃO.

Allan Patrick dos Santos


Rithyele Oliveira dos Santos
Curso: Ciência da Computação
07/11/2016

RESUMO
A Programação tem se tornado uma tarefa cada vez mais comum, pois uma linguagem
é composta por uma sintaxe, semântica e um conjunto de normas que tem como objetivo
dar instruções para uma máquina. Essas linguagens auxiliam aos programadores a
escrever programas com maior facilidade e rapidez, isso se deve ao fato de que essa
linguagem se aproximou da linguagem humana. Entretanto, nas primeiras linguagens
de programação, programar era uma tarefa complicada, que podia, inclusive, exigir
muito de conhecimento de hardware. Em Assembly podemos programar escrevendo em
binário ou em hexadecimal. Sendo assim este artigo vai nos mostrar um pouco da
historia do Assembly e seus comandos principais.
PALAVRAS CHAVE: Assembly, Programação, Processador.

ABSTRACT
Programming has an increasingly common task, a language consists of syntax,
semantics, and a set of rules that aims to give instructions to a machine. These auxiliary
languages for programmers and program designers with greater ease and speed, so
that it is a work of human language. However, the first programming languages, the
program was a complicated task, which could even demanded much knowledge of
hardware. In Assembly can program writing in binary or hexadecimal. So this article
will show some of the history of the Assembly and its main commands.

KEY WORDS: Assembly, programming, Processor.

1 INTRODUÇÃO

O computador é uma máquina capaz de executar uma serie de comandos


definidas pelo homem para lhe apresentar um determinado resultado, que deverá atender
a uma necessidade especifica. Esses comandos são denominados como algoritmos, o
qual é um conjunto de comandos lógicos finitos que devem ser executados pelo
computador para a resolução de um problema. Esses algoritmos podem manipular o que
chamamos de hardware, que nele se encontram os dispositivos de entrada e saída
(teclado, monitor, impressora, etc), dispositivos de armazenamento (memoria) e o
processador. Estes comandos são chamados de linguagem de programação, que neste
artigo trataremos em especifico da linguagem de programação Assembly que é uma
linguagem de baixo nível.
O Assembly surgiu em meados dos anos 50, dando início à segunda geração de
linguagens de programação, quando os computadores ainda eram movidos à válvula, a
idéia do Assembly é usar um comando em substituição a cada instrução de máquina.
Nessa época, havia uma grande necessidade de poder de processamento, pois países
como EUA e Rússia, viviam umas corridas espaciais e estavam no auge do
desenvolvimento de armamentos nucleares.

Entre os anos de 1955 e 1965, a válvula foi substituída pelo transistor,


desenvolvido pelo Bell Telephones Laboratories no ano de 1948, que passou a ser um
componente básico nos computadores, como nos afirma Fávero (2011, p. 21).

Esse dispositivo reduziu de forma significativa o volume dos computadores e


aumentou a sua capacidade de armazenamento. Além disso, o transistor
apresentava aquecimento mínimo, baixo consumo de energia e era mais
confiável que as válvulas (que queimavam com facilidade). Para você ter
uma ideia, um transistor apresentava apenas 1/200 (0, 005) do tamanho de
uma das primeiras válvulas e consumia menos de 1/100 (0,01) da sua
energia.

Com a invenção do transistor, os computadores ficaram mais ágeis e compactos,


com isso, surgiu à necessidade de se criar um novo modelo de programação. Esse
modelo deveria ter leitura e escrita mais simples que os anteriores, mas mantendo o
nível de programação próximo da linguagem de máquina. E foi assim que surgiram as
linguagens de baixo nível e, consequentemente, a primeira linguagem de baixo nível, o
Assembly. O programa seria escrito em Assembly, traduzido em linguagem de máquina
por um ”montador” assembler (por isso é frequentemente chamado de linguagem de
montagem), que recorre a uma tabela de tradução.

2 LINGUAGEM DE PROGRAMAÇÃO ASSEMBLY

Saber programar em linguagem Assembly significa conhecer e saber usar


melhor os requisitos mais íntimos de um microprocessador, e, por conseguinte, saber
controlar melhoras funções de um computador digital.

Criar um código em Assembly não é uma atividade fácil, um dos motivos é o


fato de Assembly não ser uma linguagem portável, onde existe completa dependência
do hardware que varia para cada família de processadores. Por exemplo, um código
Assembly para o processador de determinada marca não é o mesmos para um
processador de outra marca. Por exemplo:
Figura 1 A figura acima apresenta dois exemplos de sintaxe para diferentes processadores.

Por ser uma programação onde manipula os componentes de hardware ela pode
variar de um computador para outro, pois os componentes de cada computador são
fabricados por diferentes empresas, com isso cada um é manipulado de diferentes
formas.

2.1 MNEMÔNICOS

Um mnemônico é um nome reservado de uma família de códigos operacionais


que realizam tarefas semelhantes no processador. Os códigos operacionais atuais
diferem quanto ao tamanho e ao tipo de operandos que são utilizados.
“A linguagem Assembly utiliza códigos mnemônicos (ADD, SUB, ...), mais
fáceis de aprender e memorizar que os códigos numéricos cada instrução tem uma
correspondência de um-para-um com as instruções em linguagem de máquina.”
(ANDRADE, 2013).

Figura 2 A figura apresenta a diferença na representação de linguagem Assembly para linguagem de maquina.
2.2 COMANDOS EM ASSEMBLY

Para programar em Assembly é fundamental que o programador tenha um


conhecimento razoável em hardware, por exemplo: um processador pode ter 8
registradores que são memorias muito rápidas que ficam dentro.

Exemplos de registradores:
EBP: Registradores usados para trabalhar com pilhas.
ESP: Guarda a referencia do topo da pilha, o EBP é usado para andar sobre a pilha.

EAX: (Acumulador) Utilizados em operações aritméticas, acesso de portas de entrada e


saída, transferência de dados, guarda resultados.
EBX: (Base) Utilizado como ponteiro de acesso a memoria, índice e auxiliar as
operações aritméticas do registrador EAX.

Figura 3 Exemplo de um código em Assembly nos mostrando a frase "Hello World"

Os registradores denominados de uso geral são EAX, EBX, ECX e EDX, que realizam
tarefas como calcular, contar, armazenar e manipular dados. Segundo ADRADE (2013),
também temos outro registradores que podem nos auxiliar.

Existe também os registradores de segmento, registradores apontadores e


registrador de flags, esse último sendo muito importante para o
programador, pois através deles se pode saber se dois valores são iguais,
maiores ou menores que outros, o sinal (positivo ou negativo), entre outros.
Apesar de ser muito trabalhoso de se programar em Assembly podemos usar
instruções mais simples e fáceis de entender, conforme nos afirma MORIMOTO
(2005).
No Assembly, cada uma destas instruções equivale a uma instrução do
processador. Ao invés de usar instruções como 10101011, você pode usar
outras bem mais fáceis de entender e de memorizar, como add, div, mul, and,
or, not, etc. Você também pode criar variáveis, que são pequenos espaços na
memoria RAM reservados para guardar algum tipo de informação, que o
programa precisará mais tarde.

4 CONSIDERAÇÕES FINAIS

Com a necessidade do aumento da produtividade de software, a linguagem


assembly foi substituída por linguagens de alto nível como, por exemplo, Java e C#, que
são hoje utilizados por grandes empresas de programação. Atualmente, assembly é
usada para escrever drives de computadores, sistemas embarcados, sistemas de tempo
real, ou seja, sistemas que necessitam de uma performance crítica, robusta e uma maior
velocidade. Ou seja, com o aumento da utilização de sistemas embarcados no mercado,
o assembly ainda continua sendo fundamental.

4 REFERENCIAS
FÁVERO, Eliane Maria de Bortoli; Organização e Arquitetura de Computadores.
Pato Branco: Universidade tecnológica Federal do Paraná, 2011.

ANDRADE, Eder Rodrigues. História da Computação: Um pouco de assembly. 2013.


Disponível em:
<http://www.dsc.ufcg.edu.br/~pet/jornal/maio2014/materias/historia_da_computacao.ht
ml>. Acesso em: 02 nov. 2016.

MORIMOTO, Carlos E. Assembly. 2005. Disponível em:


<http://www.hardware.com.br/termos/assembly>. Acesso em: 02 nov. 2016.

Você também pode gostar