flat assembler
Message board for the users of flat assembler.

Index > Compiler Internals > [fixed in 1.69.11 BUG] CALL AX vs CALL EAX

Author
Thread Post new topic Reply to topic
DOS386



Joined: 08 Dec 2006
Posts: 1900
DOS386 18 Dec 2009, 02:03
Code:
 
call ax 
call eax 
    


Both instructions compile happily into very same code Confused

EDIT : fixed status


Last edited by DOS386 on 20 Dec 2009, 07:48; edited 1 time in total
Post 18 Dec 2009, 02:03
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20338
Location: In your JS exploiting you and your system
revolution 18 Dec 2009, 02:08
DOS386 wrote:
Both instructions compile happily into very same code Confused
True in 16bit mode.

In 32bit mode the prefix is properly added.
Post 18 Dec 2009, 02:08
View user's profile Send private message Visit poster's website Reply with quote
sinsi



Joined: 10 Aug 2007
Posts: 789
Location: Adelaide
sinsi 18 Dec 2009, 02:17
EAX in 16-bit mode would need to be FFFF or less wouldn't it? So 'call eax' is really only 'call ax' anyway.
Post 18 Dec 2009, 02:17
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20338
Location: In your JS exploiting you and your system
revolution 18 Dec 2009, 04:00
sinsi wrote:
EAX in 16-bit mode would need to be FFFF or less wouldn't it? So 'call eax' is really only 'call ax' anyway.
No. The programmer might need a fault to be generated. Or the descriptors might not be set to default.
Post 18 Dec 2009, 04:00
View user's profile Send private message Visit poster's website Reply with quote
sinsi



Joined: 10 Aug 2007
Posts: 789
Location: Adelaide
sinsi 18 Dec 2009, 04:49
>The programmer might need a fault to be generated.
OK, I can sort of see that.

>Or the descriptors might not be set to default.
But the code descriptor affects CS and IP in 16-bit, two registers you can't change directly even in 'unreal' mode. EAX into IP doesn't work.
Post 18 Dec 2009, 04:49
View user's profile Send private message Reply with quote
revolution
When all else fails, read the source


Joined: 24 Aug 2004
Posts: 20338
Location: In your JS exploiting you and your system
revolution 18 Dec 2009, 04:55
sinsi wrote:
But the code descriptor affects CS and IP in 16-bit, two registers you can't change directly even in 'unreal' mode. EAX into IP doesn't work.
Yes, you are right. This is something I always seem to get confused with. Thanks for the correction.
Post 18 Dec 2009, 04:55
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8353
Location: Kraków, Poland
Tomasz Grysztar 19 Dec 2009, 18:50
Fixed in 1.69.11.
Post 19 Dec 2009, 18:50
View user's profile Send private message Visit poster's website Reply with quote
DOS386



Joined: 08 Dec 2006
Posts: 1900
DOS386 20 Dec 2009, 07:46
Tomasz Grysztar wrote:
Fixed in 1.69.11.


Great Smile

- Fixed "CALL-EAX-BUG" (in X86_X64.INC Shocked)
- Fixed "PMOVMSKB-64-Bit-BUG"
- Fixed "GPF-beer-BUG" in the DOS IDE Smile

I haven't tested yet, just checked the source Neutral

The docs are same, could you please fix the (minor) docs bugs with the next release ?
Post 20 Dec 2009, 07:46
View user's profile Send private message 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.