On Fri, 15 Apr 2005, Jakub Bogusz wrote:

> On Fri, Apr 15, 2005 at 01:56:37PM +0200, pluto wrote:

> O ile pamiętam ogłoszenie o nowych binutils, to ma być po prostu mov.
> movw dodaje niepotrzebny prefix 0x66.

prefix 0x66 sie pojawia gdy przesyla sie np. mozna zroznicowac
rozmiar operandu 16/32 bity (np. %ax i %eax). w przypadku %fs, %gs
takiej mozliwosci nie ma i 0x66 sie nie pojawi.

kod:

asm volatile("movw %%fs,%0":"=m" (_fs));
asm volatile("movw %%ax,%0":"=m" (_ax));
asm volatile("movw %ax, %fs");
asm volatile("movl %eax, %fs");

da:

8c 25 02 00 00 00       movw   %fs,0x2
66 a3 00 00 00 00       mov    %ax,0x0
8e e0                   movl   %eax,%fs
8e e0                   movl   %eax,%fs

_______________________________________________
pld-devel-pl mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-devel-pl

Odpowiedź listem elektroniczym