; 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