From: Nate Eldredge Newsgroups: comp.os.msdos.djgpp Subject: Re: assembler probs Date: 22 Mar 2001 11:46:37 -0800 Organization: InterWorld Communications Lines: 55 Sender: nate AT mercury DOT st DOT hmc DOT edu Message-ID: <83snk5d1sy.fsf@mercury.st.hmc.edu> References: <99dc06$p3b$1 AT uranium DOT btinternet DOT com> NNTP-Posting-Host: mercury.st.hmc.edu Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: nntp1.interworld.net 985290397 14522 134.173.57.219 (22 Mar 2001 19:46:37 GMT) X-Complaints-To: usenet AT news DOT interworld DOT net NNTP-Posting-Date: Thu, 22 Mar 2001 19:46:37 +0000 (UTC) User-Agent: Gnus/5.0802 (Gnus v5.8.2) Emacs/20.5 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com "Michael Duxbury" writes: > I am trying to compile this but get a slight problem with the hello: db > 'Hello, world!' line. > > I can't seem to find an example of how the gcc compiler handles this part of > assembly info as (the assembler manual). It should look like hello: .ascii "Hello, world!" However, this won't work, because the int 21h functions need their buffers in conventional memory, not in the upper-memory address space of your program. See FAQ chapter 18. Your drawline function has a similar problem. Also, you've forgotten the terminating $. And use either int 20h (no special registers needed) or int 21h / ah=4ch (preferred), but not a mix like you have; it's confusing. > #include > > void drawline(int x1,int x2, int y, char color); > > > int main() > { > drawline(23,34,56,12); > } > > void hello() { > asm ("movb %ah,ox09; > movb %dx,$hello; > intb 0x21; > movb 5ax,0x4c00; > intb 0x20;" > > hello: db 'Hello, world!' ) > } > > void drawline(int x1,int x2, int y, char color) > { > asm (" movb %ax , 0xa000"); > } > > Anyone help me out please? > > -- Nate Eldredge neldredge AT hmc DOT edu