Zdrojový kód použijte v případě, že binárka na Vašem GNU/Linux nefunguje. Budete potřebovat distribuci Qt (testováno Qt5) a GNU kompilátory gcc, g++ a debugger gdb (včetně gdbserver). Přeložíte spuštěním skriptu ./SASM_src/compile.sh
v terminálu.
Na svůj GNU/Linux zkuste nejprve najít EDB v repozitáři Vaší distribuce (Debian Sid / Ubuntu 18.04 / Arch User Repository: edb-debugger
, Fedora 25+: edb
). V případě, že není k dispozici a binárka pro učebny / merlina nefunguje s hláškou rozdílné verze Qt (spuštěno pomocí terminálu), zkuste zmazat soubor lib/libQt5Svg.so.5
. Je nutno mít nainstalovanou knihovnu Qt5 včetně Qt5Xml a Qt5Svg. V případě, že nejste schopni rozchodit EDB touto cestou, zkompilujte si jej.
<sasm_adresář>/.build
místo /tmp/SASM
, fix pro mezery v názvech souborů, opraveny watchesUžívejte řešení rozumně. Shlédnutí řešení před testem vám nepomůže. Řešení jsou poskytovány bez záruky funkčnosti a optimálnosti a musí být chápány v kontextu probírané látky.
V případě, že naleznete chybu v zadání či řešení, prosím, napište mi email. Jestliže se neúčastníte cvičení a chcete zkontrolovat vaše řešení, zašlete mi ho emailem.
# | Téma | Úloha | Zadání | Řešení | Poznámky |
---|---|---|---|---|---|
1 | Číselné soustavy | ||||
2 | Překlad, sestavení a spuštění programu, ladění |
(E)FLAGS | isu8-cv2-1.asm | isu8-cv2-1-sol.asm | |
Datový segment | isu8-cv2-2.asm | n/a | |||
3 | Práce s registry a pamětí | Kopírování dat | isu8-cv3-1.asm | isu8-cv3-1-sol.asm | isu8-cv3.pdf |
4 | Aritmetické instrukce | Aritmetické operace | isu8-cv4-1.asm | isu8-cv4-1-sol.asm | |
Obsah pravidelného šestiúhelníku |
isu8-cv4-2.asm | isu8-cv4-2-sol.asm | |||
Dělení 64-bit dělence 32-bit dělitelem do ecx:eax (ukázka) |
isu8-cv4-3.asm | n/a | |||
5 | Logické instrukce, posuvy, rotace rizeni toku instrukci (skoky, cykly) |
Triple bit redundancy code | isu8-cv5-1.asm tbr_gen.py |
isu8-cv5-1-sol.asm | isu8-cv5.pdf |
6 | TEST (6b) NEJSOU povoleny žádné pomůcky! Aritmetické a logické instrukce, příznaky EFLAGS, práce s pamětí |
||||
7 | Instrukce pro práci s řetězci, funkce, zásobník |
Sekvence čísel | isu8-cv7-1.asm | isu8-cv7-1-sol.asm | isu8-cv7.pdf |
8 | Předávání parametrů funkcí zásobníkem, rekurze |
Vyčíslení výrazu v prefixové notaci | isu8-cv8-1.asm | isu8-cv8-1-sol.asm | isu8-cv8.pdf |
Hledání maximálního ohodnocení cesty v stromu (bonus) |
isu8-cv8-2.asm tree_gen.py |
n/a | |||
9 | Řídící konstrukce (podmínky, cykly) | ASnek (had v terminálu) jenom pro Linux |
isu8-cv9-1.asm centos74-ncursesw32.tar.gz |
isu8-cv9-1-sol.asm | isu8-cv9.pdf |
Formátovaný výstup FmtPrint | isu8-cv9-2.asm | isu8-cv9-2-sol.asm | |||
10 | TEST (11b) Interaktivní aplikace, vstup výstup pomocí rw32, podmínky a cykly |
||||
11 | Práce s koprocesorem FPU | Obsah kruhu | isu8-cv11-1.asm | isu8-cv11-1-sol.asm | |
Perioda kyvadla | isu8-cv11-2.asm | isu8-cv11-2-sol.asm | |||
12 | TEST (7b) Práce s koprocesorem FPU |
||||
13 | Využití knihoven jazyka C, psaní cdecl funkcí |
Zpracování souboru | isu8-cv13-1.asm isu8-cv13-1-win.asm isu8-cv13-1-win-sasm.asm isu8-cv13-1a.txt isu8-cv13-1b.txt isu8-cv13-1.c |
isu8-cv13-1-sol.asm |