|
Página 1 de 5 
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 manejar 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?)
- Informação Inicializada (.data) - Nesta seção declaramos os dados que conhecemos, como os quais nosso programa se inicia. Por exemplo:
.data
| Etiqueta | Tipo de variável | Dados inicializados |
| Msg_Texto | db | "BEM VINDO AO CURSO MASM + RADASM",0 |
| Valor_1 | dd | 7 |
- Informação Não Inicializada (.data?) - Nesta Seção declaramos os dados que não conhecemos ou que vamos escrever quando o programa for
executado. Normalmente a utilizamos para armazenar dados, por exemplo:
.data?
| Etiqueta | Tipo de variável | Dados inicializados |
| Buffer | db | 128 dup (?) |
| Valor_2 | dd | ? |
- .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 implementaremos uma nova função para que mostre uma janela que nos dê as boas vindas. Para isto abriremos o RadAsm.exe e começaremos a programar como mostra o video:
 Prog001.exe
Para assistir ao vídeo, faça o download de prog001.exe.
|
|
Última atualização ( Sáb, 26.04.2008 17:09 )
|