Mail Archives: djgpp/2001/03/22/15:01:49
"Michael Duxbury" <M DOT R DOT Duxbury AT btinternet DOT com> 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 <stdio.h>
>
> 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
- Raw text -