From: "Chuck Jarenski" <3455245 AT popnet DOT ca DOT out DOT net> Newsgroups: comp.os.msdos.djgpp Subject: Intel ASM to AT&T ASM question Date: 1 Jan 1997 22:54:43 GMT Organization: Netcom Lines: 54 Message-ID: <01b9b9ca$9cccd040$aaf15ecf@platko.ix.netcom.com> NNTP-Posting-Host: clv-oh22-10.ix.netcom.com To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp I'm trying to convert the following code from More Tricks of the Game-Programming Gurus into DJGPP. I'm having a problem getting the code in the book to work in the AT&T syntax. (Remember ScreenWidth is a 32bit int with the value of 640 and I am using near pointers with mem protection off.) Intel code: void vputpixel(int x, int y, char color, char far *vscreen) { asm { push es mov ax,[y] mov bx,320 mul bx add ax,[x] les di,[vscreen] mov di,ax mov al,color stosb pop es } } My AT&T code: void PutPixel(char *Buf, int X, int Y, char Color) { /* Places a pixel on the buffer at a X,Y location */ __asm__ __volatile__(" pushl %%es movl %0 , %%eax\n movl $_ScreenWidth, %%ebx\n mull %%ebx\n addl %1, %%eax\n lesl %2, %%edi\n movl %%eax, %%edi\n movb %%al, %3\n stosb\n popl %%ss" : : "g" (Y), "g" (X), "g" (Buf), "g" (Color) : "memory" ); } The AT&T code crashes when I call the module. Did I transfer the Intel syntax correctly to AT&T syntax? I am new at assembly in general, so any help would be apreciated. BP