Paste: ASM

Author: ASM
Mode: assembly-x86
Date: Mon, 3 Feb 2014 19:46:42
Plain Text |
; Armazenando strings, fazendo chamadas a Win32 API, usando os comandos addr e offset

.386
.model flat,stdcall

; Preserva a caixa dos identificadores
option casemap:none

; Arquivos de cabeçalho...
includelib c:\masm32\lib\kernel32.lib
includelib c:\masm32\lib\user32.lib
include c:\masm32\include\kernel32.inc
include c:\masm32\include\user32.inc
include c:\masm32\include\windows.inc

; Seçao onde ficam armazenados strings e coisas do genero
.data
	TituloJanela db "Minha primeira MessageBox em ASM", 0
	TextoJanela db "Mal vejo  hora de dar uns inline nervoso em ASM dentro do C ;P", 0

.code

	inicio:
		
		; Pode-se fazer chamada a funcao de duas maneiras, uma usando invoke, que seria o código abaixo
		; invoke MessageBox, NULL, addr TextoJanela, addr TituloJanela, MB_OK
		; E a outra da maneira mais legal ;p
		
		; Empurra os dados em ordem inversa para pilha e depois chama a call
		; Com push para setar os dados tem que usar offset com invoke usa-se addr
		push MB_OK
		push offset TituloJanela
		push offset TextoJanela
		push NULL
		call MessageBox
		
		push 0
		call ExitProcess
	end inicio

New Annotation

Summary:
Author:
Mode:
Body: