Witam, tam mam pytanie, dla przykladu taki kod:
[code]
int main()
{
int fd;
char msg[] = "jakis tekst";
fd = open ("plik", O_RDONLY);
write (fd, msg, strlen (msg));
close (fd);
return 0;
}
No i teraz mam takie pytanie, gdybym chciał takowy kod napisać w wstawkach asemblerowych, mam na myśli:
[code]
int main()
{
asm (" "); /* itd */
}
[/code]
To jakby to miało wyglądać, chodzi mi o składnie AT&T na linuxie.
No to tak na szybko:
[code]
int open(const char *pathname, int flags);
[/code]
Do rejestru %ebx wrzucam char *pathname, a do rejestru %ecx flags,
potem do %eax wrzucam numer odwolania systemowego, mianowicie: 5,
no i potem int $0x80, no i potem jeśli mam:
[code]
ssize_t write(int fd, const void *buf, size_t count);
[/code]
No i tutaj mi głównie chodzi o pierwszy argument tej funkcji, wcześniej w kodzie w C, zrobiłem: fd = open ("plik", O_RDONLY);
i ten fd to pierwszy argument w funkcji write(), i nie wiem właśnie jak się odwołać do tego pierwszego argumentu w asmie, mam nadzieje że ktoś zrozumiał mi o co chodzi, albo inaczej, napisałem już w asmie, że plik mi otwiera, i dochodzę do write(), ale nie wiem co dać jako pierwszy argument..tzn nie wiem co gdzie mam wrzucić :) mam nadzieje że ktoś zrozumiał o co mi chodzi, wiem że tutaj zawile to opisalem, ale jednak..
Dziękuje za pomoc.
Pozdrawiam.