Luke writes:
>
>
>
>
> On Mon, 21 Jun 1999, Alistair Riddoch wrote:
>
> > Luke writes:
> > >
> > >
> > > Can some clever chap (or chapess) tell me what is wrong with this:
> > > It is supposed to print the letter A to the screen..... But it doesn't.
> > >
> > > export _main
> > > _main:
> > > mov eax,#4
> > > mov ebx,#1
> > > mov ecx,#13
> > > mov edx,#1
> > > int $80
> > >
> > > mov eax,#1
> > > int $80
> > > .data
> > > .bss
> > >
> > >
> >
> > Very nearly, but not quite. Here is a version that works:-
> >
> > export _main
> > _main:
> > mov eax,#4
> > mov ebx,#1
> > mov ecx,#opstr
> > mov edx,#1
> > int $80
> >
> > mov eax,#1
> > int $80
> > .data
> > opstr:
> > .ascii "A"
> > .bss
> >
> >
> > You need to pass a a pointer to the message to the kernel. What were you
> > trying to do when you passed #13?
>
> Ta. It should have been 65...
> Luke(Boo) Farrar.
>
It didn't occur to me until I had actually fixed the program and test it
that we don't usually use the three letter notation for registers. For
16bit code they are usually just refered to by two letter name ax, bx, cx
etc.
Al