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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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
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
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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: 17275
Location: In your JS exploiting you and your system
revolution
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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: 17275
Location: In your JS exploiting you and your system
revolution
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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
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: 17275
Location: In your JS exploiting you and your system
revolution
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
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
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
Assembly Artist


Joined: 16 Jun 2003
Posts: 7723
Location: Kraków, Poland
Tomasz Grysztar
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
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: 2141
Location: Estonia
Madis731
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-2020, Tomasz Grysztar.

Powered by rwasa.