flat assembler
Message board for the users of flat assembler.

Index > Heap > Why do you like FASM?

Goto page Previous  1, 2
Author
Thread Post new topic Reply to topic
AlexP



Joined: 14 Nov 2007
Posts: 561
Location: Out the window. Yes, that one.
AlexP
Quote:
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.
I love how you capitalize 'Author' and 'He', it seems the respect for Tomasz is growing...

Tomaszality is sweeping the world! < yes, that is a new religion Smile>
Post 21 Apr 2008, 20:54
View user's profile Send private message Visit poster's website Reply with quote
AsmER



Joined: 25 Mar 2006
Posts: 64
Location: England
AsmER
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)

Code:
; ;- ORIGINAL FILE ---
; KERNEL32 API calls

import kernel32,\
       AddAtomA,'AddAtomA',\
       AddAtomW,'AddAtomW',\
       ...
       lstrlenW,'lstrlenW'

api AddAtom,\
       AddConsoleAlias,\
       ...
       lstrlen
    


Code:
; ;- 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.
Improvement:
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)


Description:
Download
Filename: COFF_DEBUG.INC
Filesize: 1.36 KB
Downloaded: 179 Time(s)


_________________
;\\ http://theasmer.spaces.live.com \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Post 21 Apr 2008, 21:46
View user's profile Send private message Reply with quote
edfed



Joined: 20 Feb 2006
Posts: 4237
Location: 2018
edfed
Quote:
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 ! Very Happy
Post 22 Apr 2008, 00:38
View user's profile Send private message Visit poster's website Reply with quote
Borsuc



Joined: 29 Dec 2005
Posts: 2466
Location: Bucharest, Romania
Borsuc
Because it's simple, no bloat-shit-stuff + all the reasons revolution posted.

Also because I understand how it internally works Wink
Post 22 Apr 2008, 16:26
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page Previous  1, 2

< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You can attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar.

Powered by rwasa.