flat assembler
Message board for the users of flat assembler.

Index > Main > flat assembler 1.61

Goto page 1, 2, 3  Next
Author
Thread Post new topic Reply to topic
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 13 May 2005, 09:58
I have decided to package the development releases (the 1.vv.x releases where the vv is odd number) in the same way as stable ones (the 1.vv with vv even), see the updated Download section.

Also I'm maintaing the more detailed WHATSNEW.TXT for the 1.61.x line (see inside the packages).


Last edited by Tomasz Grysztar on 09 Jun 2005, 01:42; edited 1 time in total
Post 13 May 2005, 09:58
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 13 May 2005, 17:05
The 1.61.3 release is able the output of COFF files for x86-64 architecture (with "format MS64 COFF" setting).
Post 13 May 2005, 17:05
View user's profile Send private message Visit poster's website Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy 13 May 2005, 20:07
Nice!
Post 13 May 2005, 20:07
View user's profile Send private message Visit poster's website Reply with quote
r22



Joined: 27 Dec 2004
Posts: 805
r22 14 May 2005, 03:33
I'm waiting for the PE64 release before a buy a new 64bit system.
Post 14 May 2005, 03:33
View user's profile Send private message AIM Address Yahoo Messenger Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 14 May 2005, 08:06
Too bad, I need some testers for the execution of programs when I develop it. Wink
Post 14 May 2005, 08:06
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 16 May 2005, 22:47
In version 1.61.4 I have implemented the new "rept" directive, which allows repeating the block of code at preprocessor's stage. It is actually a kind of macro, and is named after the analoguous macro repetition mechanism from TASM - where the block for repetition starts with "rept" followed by the count number, and ends with "endm", just like a macro. Similarly, the "rept" implemented in fasm has the syntax like fasm's macro, so it looks like:
Code:
rept 21
{
  local label
  label: 
  loop label
}    

Any directives and operators that are allowed inside macros, are allowed also in the "rept" block, like the "local" directive in the sample above. The repetitions are done with the same mechanism, which runs through all the argument groups in case of macros - therefore you can also use the "forward", "common" and "reverse" directives.
The count number can be followed by the symbol, which will be replaced symbolically with the number of repetition. So this macro:
Code:
rept 7 num { reverse display `num }    

will display digits from 7 to 1 as text.
If the count given is 0, the block is just skipped.
Post 16 May 2005, 22:47
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20306
Location: In your JS exploiting you and your system
revolution 17 May 2005, 01:46
Regarding:

Quote:
the "endp" now detects whether "return" has been forgotten and automatically generates return code in such case


I have many procedures that follow a structure like this:

Code:
proc foo arg1,arg2
.local1 dd      ?
.local2 dd      ?
.retval dd      ?
        enter
        mov     eax,[arg1]
        cmp     eax,rare_case
        jz      .rare
.usual: code
        code
.ret:   mov     eax,[.retval]
        clean_up_handles
        return
.rare:  code
        code
        jmp     .ret
endp
    


With the new "endp" the macro will insert another unnecessary "return" at the end of each procedure.

I would like to suggest a small change to the following:

Code:
macro endp      ; end procedure definition
 { if ~ defined last@ret
    return
    display "WARNING: Automatic insersion of 'return'.",0dh,0ah
   end if
   purge last@ret
   purge return
   purge enter
   macro rstargs#first@args \{ \}
   rstargs all@args
   purge rstargs#first@args
   end if }
    


The use of "display" is optional of course. But I think you will get the idea.
Post 17 May 2005, 01:46
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 17 May 2005, 06:25
This is a good point. I will remove this feature.
Post 17 May 2005, 06:25
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 18 May 2005, 12:39
The 1.61.5 is out - with fully documented "rept" directive.
Post 18 May 2005, 12:39
View user's profile Send private message Visit poster's website Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20306
Location: In your JS exploiting you and your system
revolution 19 May 2005, 03:43
Can you allow a negative base also?

Code:
rept 20 value:-19 {
call @f
dd value
@@:
}
    


A very useful feature.
Post 19 May 2005, 03:43
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 19 May 2005, 09:09
Isn't this enough?
Code:
rept 20 value:0 {
reverse
call @f
dd -value
@@:
}    

also the pieces of code like above should be actually done with "repeat" directive, since there's no reason for doing it at preprocessor's stage (and waste memory for the duplicated lines), when can be done by assembler (which just processes the given lines many times; and allows much more freedom with values and expressions).

The idea behind counter being always positive is that in such case it always resolves to one symbol, so can be safely used with operators like `, etc.
Post 19 May 2005, 09:09
View user's profile Send private message Visit poster's website Reply with quote
ronware



Joined: 08 Jan 2004
Posts: 179
Location: Israel
ronware 19 May 2005, 14:45
Privalov,

Is there any chance of getting the Linux imports directly as a FASM directive?
http://board.flatassembler.net/topic.php?t=3169
Post 19 May 2005, 14:45
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 20 May 2005, 00:23
I will let you know when I work on it.
Post 20 May 2005, 00:23
View user's profile Send private message Visit poster's website Reply with quote
ronware



Joined: 08 Jan 2004
Posts: 179
Location: Israel
ronware 20 May 2005, 01:14
OK, thanks very much
Post 20 May 2005, 01:14
View user's profile Send private message Visit poster's website AIM Address Yahoo Messenger Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20306
Location: In your JS exploiting you and your system
revolution 20 May 2005, 02:35
Fair enough. Then this is an alternative:

Code:
rept 20 value:0 {
call @f
dd value-19
@@:
}
    


The best part about the REPT directive for me is that I can use anonymous labels for things. The above was just and example and not what I intended to put into a real program.
Post 20 May 2005, 02:35
View user's profile Send private message Visit poster's website Reply with quote
THEWizardGenius



Joined: 14 Jan 2005
Posts: 382
Location: California, USA
THEWizardGenius 24 May 2005, 15:08
Great to see FASM is once again getting a good update. Keep up the great work!
Post 24 May 2005, 15:08
View user's profile Send private message AIM Address Reply with quote
madmatt



Joined: 07 Oct 2003
Posts: 1045
Location: Michigan, USA
madmatt 25 May 2005, 06:27
How would you remove the endp auto-return feature? I'm getting the same problem as mentioned above, I'm too used to adding a return at the end of my procedures.
Post 25 May 2005, 06:27
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8351
Location: Kraków, Poland
Tomasz Grysztar 25 May 2005, 08:20
It is removed already.
Post 25 May 2005, 08:20
View user's profile Send private message Visit poster's website Reply with quote
Nikolay Petrov



Joined: 22 Apr 2004
Posts: 101
Location: Bulgaria
Nikolay Petrov 26 May 2005, 22:37
Congratulation Privalov,
Great work. I respect from your job. At this moment, I use FASM IDE to edit and compile FASM, MASM, TASM, C, C++ and other documets, but with version 1.57 - why?
1.Because I added a code(many thanks for open source).
2.Your IDE safe my eyes and work fast and perfect.
That's why - please - put in the next version a "tools" menu.
The second problem is a visual
In the taskbar window, when i open many documents i see:
flat ass....
flat ass....
and I dont know what is the active document, while I open it.
But better will be:
flat ass....[bla1.asm]
flat ass....[bla2.asm]
Post 26 May 2005, 22:37
View user's profile Send private message Reply with quote
Madis731



Joined: 25 Sep 2003
Posts: 2139
Location: Estonia
Madis731 27 May 2005, 08:30
I think you can't tell windows what to do - the only thing you can easily do is:
1) Use FASMs tab feature
-AND-
2) change the nameformat: [bla1.asm] - flat assembler 1.5x or other ver..

Then when windows clips off the end you can still see the start Wink
Though I don't think Privalov will agree to the last one because FASM can't advertice itself then Smile
Post 27 May 2005, 08:30
View user's profile Send private message Visit poster's website Yahoo Messenger MSN Messenger Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  
Goto page 1, 2, 3  Next

< 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 cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.