NAGOA RAD IDE new version Greate Improvement!
NEW VERSION ! A MUST FOR NASM USERS !
http://visual-assembler.pt.vu/
Nagoa Default settings uses nagoa.inc and nagoa.obj
nagoa.inc is a file that contains information , macros that will help you build more faster,
equivalences such , MB_OK equ 0 , in order that you can use MS related information to program .
FIRST YOU MUST KNOW THAT :
CALL function
is not the same of
call function
( call is a macro in nagoa.inc that permits you to call a function fast way !
in order to build litle exe?s . )
CALL ( CALL is the realy assembly instruction , never forget that NASM is case sensitive ! , means that CALL is diferent from call )
CALL must be used when you CALL a rotin ( sub program ) inside your program with no parameters
example:
CALL rotin1
rotin1:
add eax,2
inc esi,eax
ret
call
use call to call functions in side a dll
use this type of calling functions in side dll?s becouse exe will be very litle !
example:
call MessageBox,handle,"this is the title","this is my message",MB_OK
or like this :
push dword handle
push dword titulo
push dword mensagem
push dword tipo
call MessageBox
in fact what this 2 examples are doing is :
push dword handle
push dword titulo
push dword mensagem
push dword tipo
extern MessageBox
CALL
So use the fast and easy the call macro :
call MessageBox,handle,"this is the title","this is my message",MB_OK
and your exe will be very litle !
if we want to invoke a CALLBACK or a function in side the code use INVOKE :
invoke NameProc, , NULL, , SW_SHOWDEFAULT
NameProc:
%define var1 ebp+8
%define var2 ebp+12
%define var3 ebp+16
%define var4 ebp+20
enter 0, 0
;code to do here....
xor eax,eax
leave
ret 16
CALLING A INTERNAL FUNCTION ESPECIFIC EXAMPLE :
invoke NameOfTheFunction,,,
Example on how to make an internal function that use registers
;=================================================
; PROC USES ESI EDI EBX var1:HDC, var2:DWORD, var3:DWORD
;=================================================
NameOfTheFunction :
%define var1 ebp+8
%define var2 ebp+12
%define var3 ebp+16
enter 0,0
;=== code to do =
pop ebx
pop edi
pop esi
leave
ret 12
Example of a program : that will send a messagebox to the user :
then open the menu Nagoa File -> Save Project as
well here we give it test us name , then we clik in browse and save the project in some dir we have made before .
then you go to menu Nagoa project -> Build settings :
well by default Nagoa is already set to build exe using nagoa.inc .
then we click in the asm -> obj button ( compilation ) then we link it ( make the executable ) .
( by default Nagoa is ready for build exes for windows using nagoa.inc )
after we have clicked asm-obj (opens a dos box wait until finished...)
afer we heve cliked link (opens a dos box wait until finished ... )
apears 2 leds lighting the first is signal that you have give a order of compilation and the second that you ordered to link ( to make the executable).
then apears a new button Run ! click on it
and your first windows assembly program is done !
only a 1,5 kb exe !!!
**************************************************
Examples of data :
var1 dd 0 ; when we do not now the value of var1
name1 db ' Hi you are great !',0 ; here this name1 is equal to Hi you are great !
ID_n1 equ 100 ; here ID_n1 is equvalent to 100 decimal
msg resd MSG_size ; here msg has the size of MSG_size ( Structure MSG fron win32api )
aii times 100 db 0 ; here aii is one hundred times zeros
When we use a dll that is not part of windows system and is not alredy in nagoa.obj
we can call any function in side that dll , you can eaven spy a dll , to see what functions he have ! using the menu in Nagoa TOOLS get functions from dll
lets imagine that we have a dll , called sexy.dll , and we we need a function in side called letsGo and as 2 parameters .
we can call it in tow maners :
IMPORT letsGO sexy.dll
call letsGo,parameter1,parameter2
or we can do a new nagoa.obj to link ! so next time we dont have to write : IMPORT letsGO sexy.dll
for that we use the menu Nagoa Project -> add dll to NAGOA
so here we click in +browse to browse for the dll you want to add to NAGOA , in our example is , sexy.dll
then click on build nagoa.obj , and thats done !
so next time we juse this new dll we just call it like this :
call letsGo,parameter1,parameter2
http://visual-assembler.pt.vu/
NEW VERSION ! A MUST FOR NASM USERS !
http://visual-assembler.pt.vu/
Nagoa Default settings uses nagoa.inc and nagoa.obj
nagoa.inc is a file that contains information , macros that will help you build more faster,
equivalences such , MB_OK equ 0 , in order that you can use MS related information to program .
FIRST YOU MUST KNOW THAT :
CALL function
is not the same of
call function
( call is a macro in nagoa.inc that permits you to call a function fast way !
in order to build litle exe?s . )
CALL ( CALL is the realy assembly instruction , never forget that NASM is case sensitive ! , means that CALL is diferent from call )
CALL must be used when you CALL a rotin ( sub program ) inside your program with no parameters
example:
CALL rotin1
rotin1:
add eax,2
inc esi,eax
ret
call
use call to call functions in side a dll
use this type of calling functions in side dll?s becouse exe will be very litle !
example:
call MessageBox,handle,"this is the title","this is my message",MB_OK
or like this :
push dword handle
push dword titulo
push dword mensagem
push dword tipo
call MessageBox
in fact what this 2 examples are doing is :
push dword handle
push dword titulo
push dword mensagem
push dword tipo
extern MessageBox
CALL
So use the fast and easy the call macro :
call MessageBox,handle,"this is the title","this is my message",MB_OK
and your exe will be very litle !
if we want to invoke a CALLBACK or a function in side the code use INVOKE :
invoke NameProc, , NULL, , SW_SHOWDEFAULT
NameProc:
%define var1 ebp+8
%define var2 ebp+12
%define var3 ebp+16
%define var4 ebp+20
enter 0, 0
;code to do here....
xor eax,eax
leave
ret 16
CALLING A INTERNAL FUNCTION ESPECIFIC EXAMPLE :
invoke NameOfTheFunction,,,
Example on how to make an internal function that use registers
;=================================================
; PROC USES ESI EDI EBX var1:HDC, var2:DWORD, var3:DWORD
;=================================================
NameOfTheFunction :
%define var1 ebp+8
%define var2 ebp+12
%define var3 ebp+16
enter 0,0
;=== code to do =
pop ebx
pop edi
pop esi
leave
ret 12
Example of a program : that will send a messagebox to the user :

then open the menu Nagoa File -> Save Project as

well here we give it test us name , then we clik in browse and save the project in some dir we have made before .
then you go to menu Nagoa project -> Build settings :

well by default Nagoa is already set to build exe using nagoa.inc .
then we click in the asm -> obj button ( compilation ) then we link it ( make the executable ) .
( by default Nagoa is ready for build exes for windows using nagoa.inc )

after we have clicked asm-obj (opens a dos box wait until finished...)
afer we heve cliked link (opens a dos box wait until finished ... )
apears 2 leds lighting the first is signal that you have give a order of compilation and the second that you ordered to link ( to make the executable).

then apears a new button Run ! click on it
and your first windows assembly program is done !
only a 1,5 kb exe !!!
**************************************************
Examples of data :
var1 dd 0 ; when we do not now the value of var1
name1 db ' Hi you are great !',0 ; here this name1 is equal to Hi you are great !
ID_n1 equ 100 ; here ID_n1 is equvalent to 100 decimal
msg resd MSG_size ; here msg has the size of MSG_size ( Structure MSG fron win32api )
aii times 100 db 0 ; here aii is one hundred times zeros
When we use a dll that is not part of windows system and is not alredy in nagoa.obj
we can call any function in side that dll , you can eaven spy a dll , to see what functions he have ! using the menu in Nagoa TOOLS get functions from dll
lets imagine that we have a dll , called sexy.dll , and we we need a function in side called letsGo and as 2 parameters .
we can call it in tow maners :
IMPORT letsGO sexy.dll
call letsGo,parameter1,parameter2
or we can do a new nagoa.obj to link ! so next time we dont have to write : IMPORT letsGO sexy.dll
for that we use the menu Nagoa Project -> add dll to NAGOA

so here we click in +browse to browse for the dll you want to add to NAGOA , in our example is , sexy.dll
then click on build nagoa.obj , and thats done !
so next time we juse this new dll we just call it like this :
call letsGo,parameter1,parameter2
http://visual-assembler.pt.vu/