| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-bounces using -f |
| From: | "Joel Saunders" <jbs30000 AT aol DOT com> |
| 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: | <a06bdd2a8cddeb9e7983067354ac4918.62691@mygate.mailgate.org> |
| NNTP-Posting-Host: | spider-wm063.proxy.aol.com |
| 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
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |