comp.lang.ada
 help / color / mirror / Atom feed
From: "Michael Garrett" <michaelgarrett@csi.com>
Subject: Re: Gnat Asm Insertion Question
Date: Mon, 22 Oct 2001 09:50:12 -0500
Date: 2001-10-22T14:51:56+00:00	[thread overview]
Message-ID: <9r1bqc$nsp$1@suaar1aa.prod.compuserve.com> (raw)
In-Reply-To: 9r0vhg$evr$1@suaar1aa.prod.compuserve.com

I chaged the code to read:

Asm (Latin_1.LF & Latin_1.HT &
           "movl %%cr0,%%eax; "    & Latin_1.LF & Latin_1.HT &
           "or $0x0001,%%eax; "      & Latin_1.LF & Latin_1.HT &
           "movl %%eax,%%cr0; "    & Latin_1.LF & Latin_1.HT &
           "ljmp $0x10,$1f; "              & Latin_1.LF &
           "1: "                                     & Latin_1.LF &
Latin_1.HT &
           "movl $0x18,%%eax; "     & Latin_1.LF & Latin_1.HT &
           "movl %%eax,%%ds; "     & Latin_1.LF & Latin_1.HT &
           "movl %%eax,%%es; "     & Latin_1.LF & Latin_1.HT &
           "movl %%eax,%%fs; "      & Latin_1.LF & Latin_1.HT &
           "movl %%eax,%%gs; "     & Latin_1.LF & Latin_1.HT &
           "movl %%eax,%%ss; ",
           No_Output_Operands,
           No_Input_Operands);

In a Put statement, this gives me formated asm code with the label in the
first location on the line.
But the compiler is still choking after the label.

I took this code from a web reference which was supposed to have compiled at
one time.....


Michael Garrett <michaelgarrett@csi.com> wrote in message
news:9r0vhg$evr$1@suaar1aa.prod.compuserve.com...
>
> 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 14: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 [this message]
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
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox