flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
newtron333 22 Dec 2009, 19:37
DLL
;================================================ format PE GUI 4.0 DLL entry DllMain ;================================================ include 'c:\fasmw\include\win32a.inc' section '.data' code readable executable x dd 0 ;================================================ section '.text' code readable executable DllMain: mov eax,TRUE ret 12 vec_dis: mov eax,[esp+12] ;array third element :S ret 8 ;================================================ section '.edata' export readable writeable export 'mydll',\ vec_dis,'vec_dis' |
|||
![]() |
|
newtron333 22 Dec 2009, 19:38
;this is simple program that uses that DLL
format PE CONSOLE 4.0 entry Start ;declare entrypoint ;include fasm inc directory include 'C:\fasmw\include\win32w.inc' section '.data' data readable writable text1 db "%d",0 size dd 6 result dd 1,2,3,4,5,6 vec_array dd 7,4,23,87,13,74 vec dd 10 szPause db "pause",0 ;code section section '.code' code readable executable Start: invoke vec_dis,vec_array;,size,result invoke printf,text1,[eax] push szPause call [system] push 0 call [ExitProcess] ;================================================ section '.idata' import data readable executable library kernel,'KERNEL32.DLL',\ user,'MSVCRT.DLL',\ mydll,'mydll.DLL' import kernel,\ ExitProcess,'ExitProcess' import user,\ printf,'printf',\ system,'system',\ scanf,'scanf' import mydll,\ vec_dis,'vec_dis' |
|||
![]() |
|
baldr 22 Dec 2009, 19:50
newtron333,
First parameter is at [esp+4]. It is a pointer. Dereference it. |
|||
![]() |
|
newtron333 22 Dec 2009, 20:08
i dont understand
Last edited by newtron333 on 22 Dec 2009, 20:12; edited 1 time in total |
|||
![]() |
|
newtron333 22 Dec 2009, 20:09
what must i write here, to write third element in eax?
mov eax,[esp+12] ; how to Dereference it? |
|||
![]() |
|
revolution 22 Dec 2009, 21:26
Code: mov ecx,[esp+4] ;get first argument from caller mov eax,[ecx+8] ;get third element from array ret 4 ;restore stack and return Code: cinvoke printf,text1,[eax] |
|||
![]() |
|
newtron333 23 Dec 2009, 06:07
tnks
![]() |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.