A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

Cap. II - Nossa primeira aplicação

Sex

14

Dez

2007


07:52

(4 votos, média 5.00 de 5) 


Nível intermediário

Masm32+RadASM

Capítulo II - Nossa primeira aplicação

Escrito por: ^A|An M0r3N0^
Conselheiro: RedH@wk
Tradução: ~Uglinho~
O presente texto foi escrito para fins educacionais e de pesquisa e é de livre distribuição contanto que se preserve o conteúdo e os direitos do autor.

A estrutura dos nossos programas

Para criar um programa em MASM32 deve-se seguir uma estrutura que o nosso compilador possa entender. Por exemplo:

.386 .model flat, stdcall option casemap:none include windows.inc include kernel32.inc includelib kernel32.lib .data .code Prog001: invoke ExitProcess,0 end Prog001

Com este código já criamos um programa que nosso compilador pode entender e assim criar nossa aplicação. Agora explicarei para que serve cada uma destas seções do código:

  • .386 - Esta diretiva serve para estabelecer o tipo de processador e as instruções com as quais irá trabalhar. Neste caso é um 80386.
  • .model flat, stdcall - Aqui estabelecemos o modelo de memória requerido para nossos programas de 32 bits.
  • option casemap:none - Esta opção torna possível a diferenciação de maiúsculas e minúsculas, por exemplo, "Z" é diferente de "z".
  • Include e Includelib - O MASM32 inclui arquivos e bibliotecas para manipular um grande número de funções que existem no Windows. Estas funções são conhecidas como API, como por exemplo a API ExitProcess que está em nosso código.

    O include se utiliza para adicionar arquivos com extensão .inc e .asm
    O includelib se utiliza para adicionar bibliotecas com extensão .lib

    O MASM32 também inclui o arquivo window.inc onde encontramos um grande número de constantes e estruturas usadas pelas funções do Windows (API).
  • .data - Existem dois tipos de informação, a informação inicializada e a não inicializada (.data?)
    1. Informação Inicializada (.data) - Nesta seção declaramos os dados que conhecemos, com os quais nosso programa se inicia. Por exemplo:
      .data
      EtiquetaTipo de variávelDados inicializados
      Msg_Textodb"BEM VINDO AO CURSO MASM + RADASM",0
      Valor_1dd7
    2. Informação Não Inicializada (.data?) - Nesta seção declaramos os dados que não conhecemos ou apenas estarão disponíveis quando o programa for executado. Normalmente a utilizamos para armazenar dados, por exemplo:
      .data?
      EtiquetaTipo de variávelDados inicializados
      Bufferdb128 dup (?)
      Valor_2dd?
  • .code - Depois das seções de dados, devemos indicar ao MASM32 onde começa o código do programa e também onde termina. Para isto colocamos uma etiqueta, por exemplo Prog001, seguida de ":", para indicar que abaixo começa o código do nosso programa e, ao terminar o código do programa, se escreve end mais a etiqueta que declaramos, ficando desta maneira: end Prog001

Programando no RadASM

Ao nosso código acima adicionaremos uma nova função para que mostre uma janela que nos dê boas vindas. Para isto abriremos o RadAsm.exe e começaremos a programar como mostra o video:

Vídeo 1
Prog001.exe

vovo Para assistir ao vídeo, faça o download de prog001.exe.

Informações adicionais