flat assembler
Message board for the users of flat assembler.

Index > Compiler Internals > fasm as DLL

Goto page Previous  1, 2, 3, 4, 5
Author
Thread Post new topic Reply to topic
masm



Joined: 10 Oct 2014
Posts: 3
masm
please helps how i can compile FASMX64.ASM ? when i complile with last version 1.73.16 it is give me erros.


Description:
Filesize: 81.32 KB
Viewed: 923 Time(s)

fasm.jpg


Post 12 Aug 2019, 17:30
View user's profile Send private message Reply with quote
Tomasz Grysztar
Assembly Artist


Joined: 16 Jun 2003
Posts: 7572
Location: Kraków, Poland
Tomasz Grysztar
I'm not sure what might have caused this problem in your case, but I have updated the fasmDLL.zip with re-assembled 1.73.16 version. Please check if the new one works for you.
Post 12 Aug 2019, 19:41
View user's profile Send private message Visit poster's website Reply with quote
DimonSoft



Joined: 03 Mar 2010
Posts: 631
Location: Belarus
DimonSoft
My first guess was that you’re trying to compile PREPROCE.INC only (start from this file) which doesn’t contain the symbol. Looked through the file and checked that. Choose FASMX64.ASM tab before compiling or better assign it to compiler from context menu.
Post 12 Aug 2019, 21:13
View user's profile Send private message Visit poster's website Reply with quote
Abruzzi



Joined: 30 Sep 2019
Posts: 16
Abruzzi
I used FASM DLL to assembly a simple instruction like xor eax, eax and I wonder why the output_length for this particular instruction is 3 and output binary data is something like 0x6631C0.

I tried to add one more instruction to see how the output is changing and for these two lines
Code:
xor eax, eax
xor eax, eax    

the output_length is 6 and output binary data is 0x6631C06631C0. What is this extra byte (0x66) used for?
Post 09 Jan 2020, 16:02
View user's profile Send private message Reply with quote
ProMiNick



Joined: 24 Mar 2012
Posts: 441
Location: Russian Federation, Sochi
ProMiNick
try this sequence
Code:
use16
xor eax, eax    

thou will see output is the same as thours
than try
Code:
use32
xor eax, eax    


use16 mode is by default in fasm
thou could play with these samples too
Code:
use16
xor ax, ax    
Code:
use32
xor ax, ax    


Abruzzi, than I congratulate thou - thou explore bicicle.
Post 09 Jan 2020, 16:48
View user's profile Send private message Send e-mail Reply with quote
Abruzzi



Joined: 30 Sep 2019
Posts: 16
Abruzzi
Many thanks ProMiNick. Indeed using use32 directive the output is 2 bytes length and the resulted opcode is 0x31C0 as I expect.

I tried your examples also.
Code:
use16
xor ax, ax     

generates 0x31C0 as 32 bit mode if I use eax register and
Code:
use32
xor ax, ax     

generates 0x6631C0 as 16 bit mode if I use eax register

I have to dig out to understand why it's encoded in that way. Right now it's just witchcraft. Shocked
Post 09 Jan 2020, 17:16
View user's profile Send private message Reply with quote
ProMiNick



Joined: 24 Mar 2012
Posts: 441
Location: Russian Federation, Sochi
ProMiNick
Post 09 Jan 2020, 17:33
View user's profile Send private message Send e-mail Reply with quote
Abruzzi



Joined: 30 Sep 2019
Posts: 16
Abruzzi
It makes sense now why 66h prefix appear before instruction opcode when I am using 32 bit mode and 16 bit operands and vice versa as I could see. Thank you again ProMiNick.
Post 09 Jan 2020, 18:10
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, 3, 4, 5

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