comp.lang.ada
 help / color / mirror / Atom feed
* Using pointers with inline assembly in Ada
@ 2022-06-09 21:30 NiGHTS
  2022-06-10  5:24 ` Rod Kay
                   ` (3 more replies)
  0 siblings, 4 replies; 13+ messages in thread
From: NiGHTS @ 2022-06-09 21:30 UTC (permalink / raw)


I would like to write an inline assembly code in Ada that simply writes a constant to a specific element of an array of unsigned values.

I'm shooting in the dark here because there are absolutely no references on this subject, to my surprise.

This was my first experiment which produces a memory access error. In this early version I'm just trying to write to the first element.

declare
         type ff is array (0 .. 10) of Unsigned_32;
         pragma Pack(ff);
         Flags : aliased ff := (others => 0);
         Flag_Address : System.Address := Flags'Address;
begin
        Asm (   "movl %0, %%eax" &
                "movl $1, (%%eax)" ,             
                Inputs   => System.Address'Asm_Input ("g", Flag_Address),
                Clobber  => "eax",
                Volatile => true
        );
        Put_Line ("Output:" & Flags(0)'Img);
end;

Any help would be greatly appreciated!

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2022-06-13 20:33 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-09 21:30 Using pointers with inline assembly in Ada NiGHTS
2022-06-10  5:24 ` Rod Kay
2022-06-10 11:16   ` Luke A. Guest
2022-06-10 12:26     ` NiGHTS
2022-06-10 12:16   ` NiGHTS
2022-06-10 13:19     ` Jeffrey R.Carter
     [not found]   ` <nnd$727405a5$1c8a5b81@aedbf58048bf777d>
2022-06-10 12:23     ` NiGHTS
2022-06-11  1:43   ` Rod Kay
2022-06-10 13:39 ` Jeffrey R.Carter
2022-06-11  1:51   ` NiGHTS
2022-06-11 12:28 ` Simon Wright
2022-06-11 12:32   ` NiGHTS
2022-06-13 20:33 ` Gabriele Galeotti

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