Programar em Assembly

Este é um programa simples, para os iniciantes aprenderem como é feito um programa em Assembly. Não tão complicado como tem em outros sites, vou ensinar a criar o programa. Código por código, para vocês realmente aprenderem.

Vamos lá…

Para criar um programa que imprimirá na tela a mensagem Ola mundo,

Primeiramente tens que arrumar uma tabela ASCII em mãos.

E para quem não sabe nem o que é uma tabela ASCII, pesquise o que é neste momento e depois volte a ler este tutorial de escrita de um programa em assembly. (google é nosso amigo) :)

Vou passar, somente os códigos ASCII da mensagem "alo mundo".

CODIGO E LETRA

41 – A

6C – L

6F – O

20 - //ESPACO

6D – M

75 – U

6E – N

64 – D

6F – O

21 – !

24 – $

Para criar este programa, vou usar o programa proprio do windows chamado DEBUG(lê-se debâgui).

Para encontralo, entre no prompt (cmd) do windows de digite: debug

Assim entras no programa...

Agora é preciso colocar os códigos do string na memória.

A função: E

É para informar endereços de deslocamento

A função: A

É para "assemblar", colocar como ponto inicial de deslocamento

A função: mov

Serve para mover

A função: int

Serve para interronper

Agora vamos la….

Entre no programa debug

Informe o endereço de deslocamento a partir de 0200. e informe cada byte da tabela anterior separando-os por espaços em branco. Ficaria assim:

E 0200 41 6C 6F 20 6D 75 6E 64 6F 21 24

Neste caso é necessário informar para o registador geral DX o endereço de deslocamento em que encontra se na a sequência de caracteres. Neste caso, o endereço é 0200. É necessário também definir o valor hexadecimal 09 no registar mais significativo AH, para que um string seja impresso. Execute o comando A 0100.

Ficaria assim:

A 0100

0D0B:0100 MOV AH,09

0D0B:0102 MOV DX,0200

0D0B:0105 MOV INT 21

0D0B:0107 MOV INT 20

0D0B:0109

Obs: quando digitar a penultima linha que é MOV INT 20, é preciso dar dois enter.

O endereço 0D0B, no seu computador pode não ser o mesmo. ISTO E NORMAL!

O CODIGO 09 serve para imprimir uma sequência de caracteres na tela. Se quiseres imprimir somente um caracter, basta colocar no lugar de 09 o c

código 02.

Digite o comando G para que a mensagem seja apresentada.

-G

Alo mundo!

O programa terminou de forma normal

Ai esta o seu programa em assembly

Caso acha esse programa muito difícil de fazer, Então basta fazer o seguinte:

Entre no programa debug e digite:

E 0200 “ALO MUNDO” 24

Programa feito.

Digite: G



——————————————————————-

Caso você queira salvar este programa, basta digitar na linha de comando o debug:

N nomeprograma.com

Depois digitar:

W

Já que estou falando sobre assembly já vou falar a diferença entre assembler e assembly.

Muitas pessoas l confundem as palavras, pois não sabem do que falam.

Assembly é uma linguagem de programação! Não é uma linguagem de maquina, porem é quase isso.

Assembler é um mero compilador de programas assembly.

Cumprimentos,
Miguel Melo Pereira,
conhecimento não é crime :)

Sem comentários: