From: FGD <presbeis@look.ca>
Subject: Re: Gnat Asm Insertion Question
Date: Mon, 22 Oct 2001 14:50:51 -0400
Date: 2001-10-22T14:50:51-04:00 [thread overview]
Message-ID: <3BD46A8B.8030402@look.ca> (raw)
In-Reply-To: 9r0vhg$evr$1@suaar1aa.prod.compuserve.com
Try putting LF between each asm instruction, this way you can compile
with the -s option and get exactly which instruction causes the problem.
The long jmp may be the problem. But I have had problems with moves to
segment regs on some versions of GNAT, which may in fact depend on the
version of GAS used. You have to use operands with matching size, so you
have to write "movl %ax,%ds" and not "movl %eax,%ds" even with a -l
instruction suffix. Don't write "movw %ax,%ds", that will add a 66h
prefix. "mov %ax,%ds" will assemble but there seems to be no certain way
to know whether or not it will add a 66h prefix.
-- Frank
Michael Garrett wrote:
> I have the following snippet of code to put the processot into protected
> mode:
>
> Asm ("movl %%cr0,%%eax; " &
> "or $0x0001,%%eax; " &
> "movl %%eax,%%cr0; " &
> "ljmp $0x10,$1f; " &
> "1: " &
> "movl $0x18,%%eax; " &
> "movl %%eax,%%ds; " &
> "movl %%eax,%%es; " &
> "movl %%eax,%%fs; " &
> "movl %%eax,%%gs; " &
> "movl %%eax,%%ss; ",
> No_Output_Operands,
> No_Input_Operands);
>
> When I try to compile this code, I get the following error:
>
> C:\TEMP\cca00281.s: Assembler messages:
> C:\TEMP\cca00281.s:89: Error: operands given don't match any known 386
> instructi
> on
> gnatmake: "hardware\adaos-hardware-processor.adb" compilation error
> make: *** [make_ada_main] Error 4
>
> For some reason, the label for the ljmp instruction is not declared
> properly.
>
> How do I properly write this code so that the compiler creates a label?
>
> Thank you in advance!!
>
> --
> Michael C. Garrett
> Garrett Technologies Inc.
> michaelgarrett@csi.com
>
>
>
prev parent reply other threads:[~2001-10-22 18:50 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-10-22 11:20 Gnat Asm Insertion Question Michael Garrett
2001-10-22 11:26 ` Lutz Donnerhacke
2001-10-22 12:37 ` Florian Weimer
2001-10-22 14:50 ` Michael Garrett
2001-10-22 14:57 ` Lutz Donnerhacke
2001-10-22 15:04 ` Florian Weimer
2001-10-23 4:12 ` Michael Garrett
2001-10-22 18:50 ` FGD [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox