comp.lang.ada
 help / color / mirror / Atom feed
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
> 
> 
> 





      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