On Dec 27, 2007 5:57 PM, Robert Millan <[EMAIL PROTECTED]> wrote:
> Why not force it with .code32 / .code16 ?

No, you can't use .code32/.code16, it will not cause compile error,
but the machine code is wrong. However, you can write it like this:

.byte 0x66, 0x67
.code32
leal    0x200 + data_start - data_next(%ebx,%eax), %eax
.code16

0x66 and 0x67 is the DATA32 and ADDR32 prefix, it tell the cpu that
the next instruction use different registry and address mode. (16-bit
%ax -> 32-bit %eax, 16-bit address mode to 32-bit address mode).

-- 
Bean


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to