quinta-feira, 19 de fevereiro de 2015

Assembly

Olá pessoal ... esta postagem demorou, as últimas semanas foram bem corridas,consegui arranjar um tempinho só hoje. Terminei um projeto de home page, mas tem toda uma parte burocrática que toma um tempo considerável ... Pois bem, vamos a nossa linguagem de hoje ... Assembly ...

Considero a linguagem Assembly umas das mais inusitadas. Bom, na verdade, ela é uma linguagem bem específica. É usada para programar dispositivos computacionais, como microprocessadores e microcontroladores. Desta forma, a linguagem Assembly é uma linguagem de baixo nível, ou seja, é muito próxima da linguagem de máquina. Tanto que é uma linguagem conhecida também como linguagem de montagem.



A linguagem de máquina utiliza um padrão de bits, algo que o ser humano não consegue ler. Desta forma, o Assembly substitui este padrão de bits por símbolos, que são chamados mnemônicos. Por exemplo, para um computador, a instrução 10110000 01100001 remove uma instrução para o registrador AL (se eu não me perdi nesses 1 e 0 ...). Como sabemos, fica muito difícil para um ser humano escrever códigos usando binários. Com o Assembly, usamos o mnemônico MOV AL,61h, que manda o mesmo comando para a máquina.

A informação é mandada para o montador, ou assembler, que faz a tradução do comando para a máquina. O assembler é um tradutor mais simples que um compilador, que é usado em linguagens como C e Java.

Processadores Intel I7 e I5 - linguagem Assembly em ação
O montador cria um código objeto, traduzindo os códigos do Assembly para a linguagem de máquina. Alguns montadores aceitam diretivas, que são comandos específicos para o montador. Por exemplo, podemos definir constantes usando diretivas.

Além do montador, que traduz os códigos usados em Assembly, temos o desmontador, que faz o trabalho inverso: traduz as informações da linguagem de máquina para a linguagem Assembly.

E que tal darmos uma olhada num código Assembly? Olha que coisa mais doida ... vamos para o nosso famoso "Hello World" em Assembly ...



.model small
.data
Msg db "Hello World em Assembly x86 by Edson Ricardo Czarneski"
.code
Inicio:
mov ax, seg msg
mov ds, ax
mov dx, offset msg
mov ah, 9h
int 21h

mov ax, 4c00h
int 21h
end inicio

Bastante código estranho, não é mesmo? São os mnemônicos. Mas, olhe abaixo o resultado deste código:

Hello World em Assembly
Se um dia você, caro leitor, quiser trabalhar programando processadores, controladores ou essas partes da arquitetura dos computadores,  saiba que o Assembly será sua linguagem ... eu prefiro as linguagens de médio e alto nível, como C, C++, Java, PHP ... Mas, como se diz, cada um na sua praia, afinal, precisamos de todos não é mesmo??? Próximo post, vamos falar de Python ... Até +++

Nenhum comentário:

Postar um comentário