Ключевые слова:assembler, example, gcc, (найти похожие документы)
_ RU.LINUX (2:5077/15.22) ___________________________________________ RU.LINUX _
From : Solar Designer 2:5020/400 20 Mar 98 00:21:44
Subj : Re: Assembler
________________________________________________________________________________
From: solar@cannabis.dataforce.net (Solar Designer)
Oleg Moroz (Oleg.Moroz@p22.f701.n5020.z2.fidonet.org) wrote:
> MV> Там ещё пункт 17.2 есть -- "Double check code, produced by gas".
> С другой имеется в виду, что пользуясь gas'ом ты рискуешь ошибиться (написать
> "movl 4, %eax" вместо "movl $4, %eax", а то и еще чего похуже) и не получить
> ни
Это да, x86'ая проблема. Hа большинстве RISC такого не получится.
Хуже была другая вещь, тоже только на x86, -- до недавнего времени можно
было сказать movb %eax,%ecx и не получить сообщения об ошибке. Hо теперь
gas стал на такое проверять, что меня порадовало.
> PS А пробовал на gcc-шном inline ассемблере писать когда-нибудь ? Я в свое
> время уже готов был поверить в собственную тупость в процессе чтения доки.
> Hичего, освоился...
Угу, даже удобно. :-) Вот, например, использование MMX при свежем gas'е.
#include <stdio.h>
int main()
{
long long a = 0x7777777711111111LL, b = 0x9999999922222222LL, c;
asm(
"movq %1,%%mm0;"
"pxor %2,%%mm0;"
"movq %%mm0,%0"
: "=g" (c)
: "g" (a), "g" (b)
);
printf("%llx\n", c);
return 0;
}
/sd
--- ifmail v.2.14dev2 * Origin: DataForce ISP (2:5020/400@fidonet)