Syntax highlighting of Archiv/Programování v asembleru

{{Předmět|Programování v asembleru|Jakub Yaghob|PRG017}}

== Přednáška ==
* [http://ulita.ms.mff.cuni.cz/pub/predn/PA/ slidy]

== Cvičení ==
* násobení/dělení (32/64it)
* převod čísla na řetězec (hexa, dec)
* C funkce: memset, memcpy, memcmp, memmove, strlen, bsearch
* FPU:
** průměrná hodnota z pole floatů
** vybrat nejdelší úsečku ze zadaného pole 
** obsah n-úhelníku (vstup: pole bodů)
** násobení matic
* SSE:
** násobení matic
** výběr největšího trojúhelníku z pole

== Zkouška ==
Na zkoušku nejsou potřeba žádné teoretické znalosti. Dostanete problém (typicky nějaký výpočetní - např. obsah mnohoúhelníka, násobení matic) a máte za úkol ho naprogramovat jako proceduru v assembleru. Algoritmus není potřeba vymýšlet, Yaghob vám ho popíše. S sebou můžete mít jakékoli pomůcky (zápisky, manuály Intelu...), dokonce i notebook a odladit řešení na něm. Doporučuji s sebou mít nějaký tahák, ve kterém se hledá rychleji, než v manuálech (viz odkazy).

== Odkazy ==
* [http://nasm.sourceforge.net/doc/html/nasmdoci.html Dokumentace k NASM] (NASM je free assembler pro x86, v jeho dokumentaci jsou důkladně popsány snad všechny jejich instrukce)
* [http://www.ray.masmcode.com/tutorial/index.html tutorial na FPU]
* [http://www.emboss.co.nz/pentopt/opcode_f.html FPU instrukce]
* [http://ksvi.mff.cuni.cz/~krulis/clanky/asm.pdf Tahák z assembleru (FPU, MMX, SSE, SSE2, SSE3)]

===Starší materiály===
* [ftp://ulita.ms.mff.cuni.cz/predn/PRG017-old/ starší slidy]
* [http://urtax.ms.mff.cuni.cz/~novap2am/poznamky/assembler_prednaska.sxw Poznámky z přednášky]
* [http://urtax.ms.mff.cuni.cz/~novap2am/poznamky/assembler_cviceni.sxw Poznámky z cvičení] (příklady)