flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
l_inc 07 Jan 2015, 20:53
bubach
Quote: it seems to be the divide by 2 part it doesn't like Yes. This is soo wrong. What was actually compiled is "mov [idt_list+eax], edi". This bug has been eliminated in 1.66 and it seems to be summarized under "many other small bugs fixed". Quote: Is there somewhere I could get a summary of changes affecting syntax from 1.60 and forward? WHATSNEW.TXT _________________ Faith is a superposition of knowledge and fallacy |
|||
![]() |
|
bubach 07 Jan 2015, 22:33
you must mean "mov [idt_list+ecx], edi"? so before the bug fixes it just ignored the divide by 2?
|
|||
![]() |
|
revolution 08 Jan 2015, 00:16
bubach wrote: you must mean "mov [idt_list+ecx], edi"? so before the bug fixes it just ignored the divide by 2? ![]() |
|||
![]() |
|
l_inc 08 Jan 2015, 00:18
bubach
No. I mean eax. My first thought was that fasm just divides the native register number (like you know: ecx/2 = eax, esi/2 = ebx, etc.) But in a couple of superficial tests it always took eax. _________________ Faith is a superposition of knowledge and fallacy |
|||
![]() |
|
bubach 08 Jan 2015, 01:29
wow. must have been close to miraculous that my old code would run without errors in that case. probably helped that the line above was:
Code: movzx ecx, ax |
|||
![]() |
|
bubach 08 Jan 2015, 19:55
Hm, I have another strange thing going in my bootsector. It seems as it no longer assembles this
Code: jmp near start nop into "EB 3C 90" but instead into "E9 3C 00 90"... sigh. something changed with near jumps, or could this be a bug in the hacked OS X version of fasm? ![]() |
|||
![]() |
|
l_inc 08 Jan 2015, 20:39
bubach
The keyword near enforces a long encoding of a relative jump. The keyword short enforces a short encoding of a relative jump. If you specify neither of those the short encoding is used unless it's not possible. See the documentation for explanation of keywords. _________________ Faith is a superposition of knowledge and fallacy |
|||
![]() |
|
bubach 08 Jan 2015, 21:08
That code is untouched since like, 2003. But yeah, okey - probably another thing changed since 1.60. Thanks!
|
|||
![]() |
|
bubach 08 Jan 2015, 22:48
Argh, I also had to deal with this issue:
http://board.flatassembler.net/topic.php?t=3286 No way to avoid it any longer. Well, moving the codebase down below 0x10000 to maybe 0x8000 should do it. I hope. |
|||
![]() |
|
l_inc 08 Jan 2015, 23:20
bubach
I can't see any real issues with staying above 0x10000. As for jumping into protected 32-bit mode you just do jmp fword 0x08:do_pmode . As for data shared across both modes, you just define two labels for each shared variable. There are possibilities to make neat and easy-to-use macros for that, so that there's no visual difference to your previous code. _________________ Faith is a superposition of knowledge and fallacy |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.