Message board for the users of flat assembler.
> Heap > Why do you like FASM?
Goto page Previous 1, 2
I love how you capitalize 'Author' and 'He', it seems the respect for Tomasz is growing...
The thing that impresses me the most is the guts (or ...) of the Author to write it in Assembly. Although He hardly gained anything by doing this.
Tomaszality is sweeping the world! < yes, that is a new religion >
|21 Apr 2008, 20:54||
Hey, sorry for double posting and going a little off subject, but I have realised that the macro I have wrote for automation of extrn declarations doesn't do it's job that well (some API functions have different names compared to how we call them i.e.
we write invoke CreateFile, ....
but in kernel32.dll name of the function is CreateFileA)
Anyways, no worries. Here come a little update. All you need to do is to:
1. Copy all (or just the ones you need) files from \fasm\include\API
2. Create new folder whenever you want (i.e. \fasm\include\EXTRN) and paste files inside
3. Edit files slightly:
> Replace word import with Extern
> Replace name of library with x86 or x86_64 (depending if you use COFF/MS COFF or MS64 COFF directive)
> Remove everything starting from api to end of file
> Save changes and enjoy Very Happy
To ensure everyone gets it, that's how things should look like (example: KERNEL32.INC)
; ;- ORIGINAL FILE --- ; KERNEL32 API calls import kernel32,\ AddAtomA,'AddAtomA',\ AddAtomW,'AddAtomW',\ ... lstrlenW,'lstrlenW' api AddAtom,\ AddConsoleAlias,\ ... lstrlen
; ;- FILE YOU WANT--- ; KERNEL32 API calls Extern x86,\ AddAtomA,'AddAtomA',\ AddAtomW,'AddAtomW',\ ... lstrlenW,'lstrlenW'
Use x86_64 instead of x86 if you use MS64 COFF format.
In main file you should place following line to actually define all the names:
include '\fasm\include\EXTRN\Kernel32.inc' ; or different path depending where you copied the files
[there seems to be a problem with forum's php code when you try to add attachment with too long description so I'll put description here...]
File does nearly the same thing as before. This time list of functions is used instead of making up the names as they are used.
Now there is additional errors checking (before calling "GobalAlloc" would not rise any errors on assembly time. Now you will get Error: Procedure`s name GobalAlloc is not defined
As for procedures, 'public' is being declared only when procedure is used. (before 'public' was generated every time making an interaction with procedure's name and therefore making fasm include it in output file)
;\\ http://theasmer.spaces.live.com \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|21 Apr 2008, 21:46||
Why do you like FASM?
because if i don't like it, it would be very stupid to use it everydays at least 3 hours.
at leat 3 hours!!! everydays since 3.5 years now.
what i am doing with? i learn, i think about algorythms, i try some stuff, i devellop some coding styles. we can say it is a very good tool to learn, understand and more, many more !
|22 Apr 2008, 00:38||
Because it's simple, no bloat-shit-stuff + all the reasons revolution posted.
Also because I understand how it internally works
|22 Apr 2008, 16:26||
|Goto page Previous 1, 2
< Last Thread | Next Thread >
Copyright © 1999-2020, Tomasz Grysztar.
Powered by rwasa.