Pular para o conteúdo principal

História do Assembly

Provavelmente a primeira linguagem de programação.
O Assembly surgiu em meados da década de 50. Os computadores ainda usavam válvulas.

Considerada uma grande evolução na linguagem de computação, pois se utilizou de grandes abstrações, aumentando produtividade e segurança.
O Assembly substitui uma instrução em linguagem de máquina por um comando legível ao ser humano.

Exemplos de instruções em Assembly: add, mul, div, and, not, or. Pondendo-se ainda, o usuário, criar variváveis e lidar com elas através dessas instruções e algumas outras existentes na linguagem Assembly. A linha de instrução "add x, y" significa dizer que estou mandando somar os valores de x e y. Esse resultado deve ser armazenado em um registrador.

Registradores são áreas dentro de um processador mais rápidas que operadores de memória. São 8 registradores gerais: EAX, EDX, ECX, EBX, ESI, EBP, ESP e EDI. Programando, devemos utilizar apenas 6 destes registradores, devido a os registradores ESP e EBP serem utilizados para entrada e saída de procedimentos. É importante saber o tamanho do registrador e os dados que poderão ser armazenados neles, como na figura ao lado.

Programar em linguagem assembly é bastante árduo e é necessário ter um montador. Temos aqui um montador e não um compilador como muitos pensam.

O montador assembly transforma o código feito em assembly em linguagem de máquina, a fim de propiciar o entendimento das instruções pelo processador.

Uma linguagem de baixo nível que permite, ao ser humano, trabalhar diretamente com instruções do processador. Sendo assim mais trabalhosa, como já disse acima, pois, tratamos diretamente com manipulações de endereços de memória e instruções.

A linguagem assembly tem uma característica que acredito ser singular, cada linha de código possui apenas uma instrução.

Abaixo estão listados alguns componentes desta linguagem:

  1. Instruções de Registradores

  2. Instruções de Pilha

  3. Instruções de Execução

  4. Instruções de Memória

  5. Instruções de Flag

  6. Declarações de Memória
  7. Diretivas para o Assembler
  8. Comentários

    Depois do ponto-e-vírgula até a próxima quebra de linha, tudo é considerado comentário.

  9. Instruções para o Sistema Operacional

Os exemplos dos componentes foram tirados de http://www.numaboa.com.br/informatica/oiciliS/assembler/textos/lingAssembly.php

Contribuições para este artigo:

Comentários

Unknown disse…
Obrigada pelo total na prova de Arquitetura !!
B0b0_d4_c0rt3 disse…
Muito bom este texto.
Na internet pouco se encontra em Português a história da linguagem Assembly.
Gostei muito do texto. Rápido, direto e ilustrado.
O post é de 2007, achei incrível ninguém comentar isso aqui.

[]s
B0b0_d4_c0rt3
ߥ ȚҸӑỈŝ disse…
Muito bom, gostei mesmo. Parabens!
ߥ ȚҸӑỈŝ disse…
Muito bom, gostei.. Da pra ter uma boa base.

Postagens mais visitadas deste blog

DISTINCT x UNIQUE, existe diferença?

Não. "Utilize DISTINCT ou UNIQUE se você quiser que o Oracle retorne apenas uma cópia de cada conjunto de linhas duplicadas selecionadas (estas duas palavras-chave são sinônimos). As linhas duplicadas são aquelas com valores correspondentes para cada expressão na lista de seleção." UNIQUE é uma função do ORACLE e não funcionará em outros bancos de dados (MySQL, PostgreSQL, etc...) Fonte: Oracle9i SQL Reference Release 2

Problemas para criar cliente java de um webservice gerado no delphi

Neste post irei relatar aqui problemas que ocorreram quando tentava criar um cliente em Java de um webservice gerado no Delphi. Por algumas vezes já precisei trabalhar com Webservices, como servidor e como cliente. Sempre usando tecnologias do JAVA, algumas vezs .NET. Recentemente, precisei criar um cliente para um serviço desenvolvido em Delphi executado a partir de uma dll. Para minha surpresa tive problemas na implementação, para uma surpresa ainda maior encontrei muitos programadores na internet com este mesmo problema que será aqui relatado. Essa dificuldade e o pouco material encontrado sobre o assunto serviram de motivação para publicá-lo aqui. Problema: Comecei salvando o wsdl do serviço, como sempre faço, e através do Eclipse (IDE de desenvolvimento Java) com alguns plugins, WSDL2Java, da API do APACHE AXIS 1.3 tentei gerar o cliente e não obtive êxito. O erro apresentado era sempre esse: IWAB0399E Error in generating Java from WSDL: WSDLException (at /definitions/binding/ope...