Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Sep 1996 01:22:52 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        freebsd-hackers@freebsd.org, staff@kyklopen.ping.dk
Subject:   Re: movsbw question
Message-ID:  <199609011522.BAA10132@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>The pgcc uses the movsbw instruction with a 32 bit oprand and according
>to my old i486 assembler book the instraction takes a "r32" oprand but
>"as"  says it take a reg16 operand. Now what is right?

Neither :-).  It takes a r/m8 operand and converts it to a r16 result.
An Intel assembler book would spell the instruction movsx.

The FreeBSD version of gas doesn't really understand this instruction.
It generates a superfluous second operand size override for

	movsbw	%al,%bx

It emits bytes 0x66, 0x66, 0x0f, 0xbe, 0xd8.  This is fixed in

	GNU assembler version 2.6 (i486-linux), using BFD version 2.6.0.2

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199609011522.BAA10132>