flat assembler
Message board for the users of flat assembler.
![]() |
Author |
|
humeafo 12 Mar 2010, 01:23
my dos program 16-bit segment code:
lgdt fword [gdtr_] seems generate the 66 prefix, while this is not necessary according to intel manual? |
|||
![]() |
|
humeafo 12 Mar 2010, 01:51
yes, you're right. I misunderstand the meaning on my fist glance of the manual.
So fasm 1.50 generated the wrong code without 66h while not fasm 1.69. |
|||
![]() |
|
LocoDelAssembly 12 Mar 2010, 01:53
Another source of info:
Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3A - 9.10 INITIALIZATION AND MODE SWITCHING EXAMPLE -- 9.10.2 STARTUP.ASM Listing Code: . . . 171 DB 66H; execute a 32 bit LGDT 172 LGDT TEMP_GDT_scratch If you remove "fword" the prefix will not be generated, but keep in mind revolution's post. |
|||
![]() |
|
revolution 12 Mar 2010, 01:54
If you don't need the 0x66 prefix and want a 24bt base address then just use this:
Code: gdtr_: df 0x123456 ;... lgdt [gdtr_] |
|||
![]() |
|
humeafo 12 Mar 2010, 01:58
thanks, problem solved.
|
|||
![]() |
|
revolution 12 Mar 2010, 03:44
LocoDelAssembly wrote: If you remove "fword" the prefix will not be generated ... |
|||
![]() |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.