flat assembler
Message board for the users of flat assembler.

Index > Main > flat assembler 1.55

Author
Thread Post new topic Reply to topic
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8356
Location: Kraków, Poland
Tomasz Grysztar 27 Aug 2004, 21:09
Now available in the Download section.

One small feature with # operator added (see http://board.flatassembler.net/topic.php?t=2094&highlight=55 for details) and documentation got a small update (the macro features added in recent versions are finally documented).


Last edited by Tomasz Grysztar on 27 Sep 2004, 12:47; edited 1 time in total
Post 27 Aug 2004, 21:09
View user's profile Send private message Visit poster's website Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy 28 Aug 2004, 08:48
Could you show an example of the new "# feature"?

Thanks!
Post 28 Aug 2004, 08:48
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8356
Location: Kraków, Poland
Tomasz Grysztar 28 Aug 2004, 09:38
It is already used in the updated win32ax includes in fasmw package:
Code:
macro allow_nesting
{ macro pushd arg
  _%
     if arg eq
     else if  _##arg  eq _invoke arg
      arg
     else
      pushd arg
     end if %_
  macro invoke proc,[arg]
  _% _common_ allow_nesting
     _reverse_ pushd <arg>
     _common_ call [proc]
              push eax
              purge pushd
              purge _invoke %_ }    

The same thing was previously done with double "fix". For more info see the updated section 2.3.3 of manual.
Post 28 Aug 2004, 09:38
View user's profile Send private message Visit poster's website Reply with quote
Tommy



Joined: 17 Jun 2003
Posts: 489
Location: Norway
Tommy 28 Aug 2004, 10:18
Okey! Cool Thanks! I see!
Post 28 Aug 2004, 10:18
View user's profile Send private message Visit poster's website Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1166
Location: Overflow
Matrix 06 Sep 2004, 19:51
If you have nothing to do in the near future with your Flat Assembler, ( all current problems solved etc... ), could you make Flat Assembler support other architectures? I'd be glad to program my microcontrollers with your assembler.
its not a big thing: they often have 33 to 130 instructions, i'm using Tasm now for it, it has a few microcontroller instruction sets in seperate datafiles (text), also it whould be a great thing if Fasm could compile code for PIC microcontrollers too Smile .
Today very much people are developing softwares on microcontrollers, they are like a micro computer,it has ports, registers, counters, even interrupts, some has flash memory, its primary purpose is controlling complex machines, although they can be used for flashing a sort led's like i did in my night rider running lights with AT89C2051 .
I don't want to disturb you with my requests, its moreimportant to make your assembler be the best Smile
MATRIX
Post 06 Sep 2004, 19:51
View user's profile Send private message Visit poster's website Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1166
Location: Overflow
Matrix 08 Sep 2004, 02:25
Hy Privalov,
exe compiled with Fasmw 1.55 smaller than 64 bytes tells : Error executing program, is it a feature?
MATRIX
Post 08 Sep 2004, 02:25
View user's profile Send private message Visit poster's website Reply with quote
roticv



Joined: 19 Jun 2003
Posts: 374
Location: Singapore
roticv 08 Sep 2004, 02:39
How did u get the exe to be smaller than 64 bytes with fasm? Can post the code and exe?
Post 08 Sep 2004, 02:39
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1166
Location: Overflow
Matrix 08 Sep 2004, 02:57
roticv wrote:
How did u get the exe to be smaller than 64 bytes with fasm? Can post the code and exe?

Very Happy of course, here you are 63 bytes
format MZ
org 256
mov ax,4c00h
int 21h
times 26 push es

or if u like nop better :
format MZ
org 256
mov ax,4c00h
int 21h
times 26 nop

if you add 1 more to the times it will be 64 bytes, and the exe will run without problems
MATRIX
Post 08 Sep 2004, 02:57
View user's profile Send private message Visit poster's website Reply with quote
roticv



Joined: 19 Jun 2003
Posts: 374
Location: Singapore
roticv 08 Sep 2004, 05:18
It works fine on my XP.
Post 08 Sep 2004, 05:18
View user's profile Send private message Visit poster's website MSN Messenger Reply with quote
Matrix



Joined: 04 Sep 2004
Posts: 1166
Location: Overflow
Matrix 08 Sep 2004, 05:22
roticv wrote:
It works fine on my XP.

then it must have been the win98 se
MATRIX
Post 08 Sep 2004, 05:22
View user's profile Send private message Visit poster's website Reply with quote
decard



Joined: 11 Sep 2003
Posts: 1092
Location: Poland
decard 08 Sep 2004, 13:26
It doesn't work on both Win98 and WinME, proably 95 too.
Post 08 Sep 2004, 13:26
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8356
Location: Kraków, Poland
Tomasz Grysztar 08 Sep 2004, 13:39
It does work in Win95/98, but only when you start it from the command line window.
Post 08 Sep 2004, 13:39
View user's profile Send private message Visit poster's website Reply with quote
quiveror



Joined: 20 Jun 2003
Posts: 34
quiveror 10 Sep 2004, 17:06
I think there's one little mistake in file win32ax.inc as I cant assemble the example below
Code:
include '%fasminc%/win32ax.inc'

.code
  start:
  invoke  ExitProcess, \
     < \
     invoke  MessageBox, \
                      < invoke GetTopWindow,0>, \
                  "Hi! I'm the example program!", \
                       "Win32 Assembly", \
                      < \
                     invoke  MessageBox, \
                              < invoke GetTopWindow,0>, \
                          "Hi! There!", \
                          "I am FIRST", \
                          MB_OK \
                    > \
     >
.end start
    

the original is something like :-
Code:
macro allow_nesting
{      ; blah...
              purge _invoke %_ }

include 'win32a.inc'

allow_nesting

macro invoke proc,[arg]
{    ; blah...    }

macro pushd first,[more]
{    ; blah...    }
    

And after I rearrage those code to :-
Code:
macro allow_nesting
{      ; blah...
              purge invoke %_ }

include 'win32a.inc'

macro pushd first,[more]
{    ; blah...    }

allow_nesting

macro invoke proc,[arg]
{    ; blah...    }
    

Then everything assemble OK. is this a bug or i probably miss out something Shocked
Post 10 Sep 2004, 17:06
View user's profile Send private message Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8356
Location: Kraków, Poland
Tomasz Grysztar 10 Sep 2004, 18:05
You're right, there was a mistake with order during the rearranging of macros.
Post 10 Sep 2004, 18:05
View user's profile Send private message Visit poster's website Reply with quote
mike.dld



Joined: 03 Oct 2003
Posts: 235
Location: Belarus, Minsk
mike.dld 14 Sep 2004, 22:24
Hi, Privalov!

Is there a simple way to include option for defining parameters string to pass to the application when I press F9 (FASMW)? If you don't planning to include this into the official package, please write it here for me (and maybe some others).
Post 14 Sep 2004, 22:24
View user's profile Send private message Visit poster's website ICQ Number Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< 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.