Date: Sun, 6 Dec 1998 10:43:37 +0200 (IST) From: Eli Zaretskii X-Sender: eliz AT is To: Tal Lavi cc: djgpp AT delorie DOT com Subject: Re: Extended ASM (Was: misc questions) In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Reply-To: djgpp AT delorie DOT com On Fri, 4 Dec 1998, Tal Lavi wrote: > I need a FlushPage routine(macro?) for a 640x480x16bpp mode written in asm. > Until now, I used a C(++) routine which uses _farsetsel & _farnspokel. Why would you need to reinvent the wheel? There is already a function called `movedata' in the library, which moves buffers with "REP MOVSL", and my guess is you can't beat it by a large margin anyway. The FAQ says in section 18.4 that either `movedata' or `dosmemput' are the appropriate tools to move large buffers to or from the conventional memory. > > sys/farptr.h uses a byte constant > > because early versions of Gas didn't support prefixes (I'm not sure how > > the things are with Binutils 2.8.1). > > Why should you write(and know) the opcode? Isn't there an ASM > instruction for that purpose? (movl %something, %%fs(%something))? I thought I explained exactly that: because early versions of Gas had bugs in assemblying such instructions.