Zacinam byt z tohoto "Jelen". Ja tu riesim problem, ktory asi ani nie je problem.
Ono to cele funguje, len trosku inak pre 8bitovu podmienku a inak pre 16,24 a 32bitovu podmienku. A s tymto ma nepriatel (kompilator) uplne pomylil.
Zistil som ze:
Ak je v podmienke 8it cislo, tak PC vyhodnoti podmienku a skoci rovno do while bloku. Vidiet to na predoslom videu.
Ak je v podmienke 16,24 a 32 bitove cislo, tak PC preskoci cely while blok (vidiet to tu
https://youtu.be/OClzfneBkug)
a ja som tu zastal a zacal hned riesit problem, ze PC preskocil cely while blok.. No ak krokovanie pustim dalej, tak pri dalsom kroku PC vyhodnoti podmienku while a bud skoci do bloku while alebo pokracuje na konci bloku while, podla vysledku podmienky.
Ma toto pre vas nejaku logiku?
EDIT:
Este som sa to doho viac vsprtal v Assembly a zistil som ze ak ma register v podmienke 8bitov, tak sa podmienka hned vyhodnoti a skoci sa do while alebo cely while preskoci, podla vysledku podmienky.
Ak ma register v podmienke viac ako 8 bitov, tak on skoci na koniec while bloku, tam vyhodnoti dolny, stredny a horny bajt (24bitov). Potom je tam BTFSS a tam sa rozhodne podla vysledku podmienky ze ci sa skoci naspat do while bloku alebo ostane na konci bloku.
Cize cele co som mal urobit po preskoceni celeho while pre 16, 24 alebo 32 bi bloku je, ze som mal spustit dalsi krok
a nie hned riesit problem. Ale koho by to napadlo, ze to kompilator takto zkompiloval. Mna to nenapadlo. Ocakaval som ze to vyhodnocovanie vopcha pred while ako to bolo doteraz s 8/bit cislami v podmienke. Toto bola prva situacia od kedy sa ucim programovat v C, co som pouzil cislo vacsie ako 8vitov v podmienke. Zaujimave.....
petrple,
V takomto prípade je tam okno dissasemmbly a prekrokujem si to tam a potom zistím kde je pes zakopaný.
Tak podla tvojej rady som toho zakopaneho psa vykopal. Je to vidno ze ty uz si v proramovavi tzv. "stary skuseny vlk". Presne to disassembly mi ten problem vysvetlil.
Diki vsetkym za rady a snad toto niekomu tiez pomoze. Teraz ked si uvedomim, ze som stratil xy hodin kvoli nicomu..... ale aspon si to zapamatam, snad navzdy.