Diferença entre assembly e assembler, tutorial como criar um programa em assembly debug, assembly ou assembler, usando debug windows

Publicado: setembro 16, 2009 em programacao

Esse é um programa simples, para os iniciantes aprenderem como é feito um programa de alô mundo. 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 você terá 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.

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 estar usando o programa proprio do windows chamado DEBUG(lê-se debâgui).

Para encontralo, entre no prompt de command do windows de digite: debug

Assim você vai acessar o 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 e nescessario informar para o registrador geral DX  o endereço de deslocamento em que se encontra a seguencia de caracteres. Neste caso, o endereço é 0200. É necessário também definir o valor hexadecimal 09 no registrar 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 voce 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. ISSO E NORMAL!

O CODIGO 09 serve para imprimir uma seguencia de caracteres na tela. Si você quisesse imprimir somente um caracter, bastava você 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 achou 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

Si imprimiu na tela sua mensagem de alo mundo então é porque deu certo(obvio)

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

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 leigas confundem as palavras, pois não sabem o que fala.

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

Assembler é mero compilador de programas assembly.

comentários
  1. gúri, tu esqueceu de definir o tamanho do bloco a ser gravado, antes de digitar W para gravar(write), era nescessário digitar RCX e deficinir CX como 44 hexadecimal (68 bytes em decimal).

    [TODO O PROGRAMA AQUI]
    N nomedoprograma.exe [ENTER]
    RCX [ENTER]
    44 [ENTER]
    w [ENTER]

  2. Lucas disse:

    Amigo, você cometeu uns erros ai, e o que eu posso lhe adiantar é que você informou errado, você escreveu que “Assembler é mero compilador de programas assembly”.

    Lembrando que Assembly não é uma linguagem compilada, mas sim é montada. Não é possível compilar assembly, mas o assembler é um montador da linguagem (1×1, e não 1xN)

  3. André disse:

    Amigo, você colocou MOV junto com a interrupção, é só tirar o MOV das linhas com interrupção (INT).

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s