X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f From: "Joel Saunders" Newsgroups: comp.os.msdos.djgpp Subject: Simple extended inline assembly question. Date: Tue, 5 Feb 2002 14:55:29 +0000 (UTC) Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Lines: 34 Message-ID: NNTP-Posting-Host: spider-wm063.proxy.aol.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: news.mailgate.org 1012915958 28773 205.188.199.178 (Tue Feb 5 15:55:29 2002) X-Complaints-To: abuse AT mailgate DOT org NNTP-Posting-Date: Tue, 5 Feb 2002 14:55:29 +0000 (UTC) Injector-Info: news.mailgate.org; posting-host=spider-wm063.proxy.aol.com; posting-account=62691; posting-date=1012915958 User-Agent: Mailgate Web Server X-URL: http://mygate.mailgate.org/mynews/comp/comp.os.msdos.djgpp/a06bdd2a8cddeb9e7983067354ac4918.62691%40mygate.mailgate.org To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Ok, when learning inline assembly I did a test program which had these variables: char *Screen_PTR = (char *)(0xB8000 + __djgpp_conventional_base); Which is a pointer to the text mode screen of course. char My_Name[9] = {"J O E L "}; My name, obviously :) Ok, now this routine works just fine. __asm__( "cld\n\t" "movl $_My_Name, %esi\n\t" "movl _Screen_PTR, %edi\n\t" "movl $8, %ecx\n\t" "rep\n\t" "movsb" ); But when I tried to make an extended inline assembly routine like so: #define Mov_Byte(Src, Dest, Mov_Size)\ __asm__ __volatile__(\ "cld\n\t"\ "rep\n\t"\ "movsb"\ : :"S" (Src), "D" (Dest), "c" (Mov_Size)\ : "%esi", "%edi") I can't get it to work. The only thing I can use it, without generating errors is to go: Mov_Byte(My_Name[0], Screen_PTR[0], 8); But nothing shows up on the screen. Oh, and I don't include "%ecx" in the clobber list because then I get the error: Can't find a register in class `CREG' while reloading `asm' -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG