Hello World Assembly para Windows
Linguagem Assembly para Windows
Este novo exemplo é de um programa que será usado para ser executado no Windows, isto significa muita coisa, primeiramente significa que nosso código precisará de uma compilação(montagem) diferente do mesmo real, o código gerado através do fonte deverá ter outra anotações do tipo:
Compilar para o modo real:
.model tiny
Compilar para o modo Windows:
.model flat
Também no programa vemos a anexação de bibliotecas para chamar as APIs do WIndows (USER32, KERNEL32):
;; Bibliotecas API Windows
;;
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
E tambem as definições:
;; Definicoes Windows
;;
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
Veja o codigo fonte abaixo de Assembly para Windows (Hello Word para Windows): hellowin.asm
;; HelloWorld para Windows
;; Versao EXE com cabecalho Binario
;;.386
.model flat, stdcalloption casemap :none
;; Definicoes Windows
;;
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
;; Bibliotecas API Windows
;;
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib.code
inicio:
push MB_OK
push offset titulo
push offset mensagem
push 0
call MessageBoxpush 0
call ExitProcess
titulo db “Mensagem”,0
mensagem db “Hello World”,0
end inicio
Agora, BAT (rotina para compilar): makeit.bat
@echo off
\masm32\bin\ml /c /coff /nologo hellowin.asm
\masm32\bin\Link /SUBSYSTEM:WINDOWS /MERGE:.rdata=.text hellowin.obj > nuldir hellowin.*
pause
Basta colocar o makeit.bat e o hellowin.asm na mesma pasta, e rodar makit.bat.
Arquivos deste Exemplo: