Vkládaný assembler

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Vkládaný assembler (také se používá anglické inline assembler) je v programování označení pro kód v jazyce symbolických instrukcí (asembleru) vložený mezi příkazy vyššího programovacího jazyka (např. C).

Nevýhodou vložení assembleru je obvykle ztráta nezávislosti kódu na platformě. Vkládání assembleru se provádí nejčastěji z jednoho z následujících důvodů. +more * Optimalizace, například využití instrukcí SIMD. * Přístup k instrukcím CPU (V/V porty, systémové volání), které překladač vyššího programovacího jazyka neumožňuje volat.

Následuje ukázka inline assembleru platformy x86 pro překladač GCC.

extern int errno;

int funcname(int arg1, int *arg2, int arg3) { int res; __asm__ volatile( "int $0x80" /* provedeme požadavek na operační systém */ : "=a" (res) /* jeho výsledek bude vrácen v registru eax ("a") */ "+b" (arg1), /* parametr arg1 předáme v registru ebx ("b") */ "+c" (arg2), /* parametr arg2 předáme v registru ecx ("c") */ "+d" (arg3) /* parametr arg3 předáme v registru edx ("d") */ : "a" (128) /* číslo volané služby předáme v registru eax ("a") */ : "memory", "cc"); /* informujeme překladač, co vše mohl náš kód změnit */

/* Operační systém vrací při chybě zápornou hodnotu; * my nastavíme globální proměnnou errno podle vrácené hodnoty a vrátíme -1 */ if (-125

Kategorie:Programovací jazyky

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top