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:
Enviar um comentário