From: "Ken Jenkins" Newsgroups: comp.os.msdos.djgpp Subject: Problems adressing memory variable Lines: 61 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: Date: Fri, 14 Mar 2003 07:54:25 GMT NNTP-Posting-Host: 68.64.172.34 X-Complaints-To: abuse AT adelphia DOT net X-Trace: news1.news.adelphia.net 1047628465 68.64.172.34 (Fri, 14 Mar 2003 02:54:25 EST) NNTP-Posting-Date: Fri, 14 Mar 2003 02:54:25 EST To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com This program is supposed to print "Hello!" in gray letters on a blue background at screen position (10, 10). However all I'm getting is the blue background with no text, 6 characters long. Can anybody tell me what I'm doing wrong? void display_string (unsigned short int x, unsigned short int y, unsigned short int text_color, unsigned short int bg_color) { unsigned short int column = (x - 1); unsigned short int row = (y - 1); char * disp_str = "Hello!"; unsigned short int length = 6; asm ( "movw $0x1301, %%ax\n\t" "movb $0x00, %%bh\n\t" "shlb $0x04, %1\n\t" "movb %0, %%bl\n\t" "addb %1, %%bl\n\t" "movw %2, %%cx\n\t" "movb %3, %%dl\n\t" "movb %4, %%dh\n\t" "movl %5, %%ebp\n\t" "int $0x10" : : "g" (text_color), "g" (bg_color), "g" (length), "g" (column), "g" (row), "o" (& disp_str[0]) : "%ax", "%bx", "%cx", "%dx", "%ebp" ); }; int main (void) { display_string (10, 10, 7, 1); return 0; };