Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Zdravím, mám napsat program v assembleru, který najde v paměti od adresy 100 do adresy 200
!druhé největší! číslo typu Single a jeho hodnotu zkopíruje do paměti na adresu 300.
Nevím, jak zracovat ten Single..jak ho přečíst, s BYTEm bych věděl, ale tady jsem bezradný, předem dík za pomoc.
Offline

Jestli tim Single je mysleno 'single precision float', tak budes muset nejspis pouzit FPU intrukce (FLD, FCOMI, FSTP a podobne), FPU instrukce jste se ucili? (Ale slo by to porovnavat i za pomoci normalnich instrukci) Podle toho, jak odpovis, tak potom kdyztak odpovim dal :-)
Offline

'single-precision floating-point ' je datovy typ - desetinne cislo s jednoduchou presnosti (zabira 32 bitu). (Napriklad v Pascalu se to nazyva 'real' a v Cecku 'float'). Napriklad na tady na Wikipedii o tom neco je. Jestli tim Single je mysleno neco jineho, tak s tim asi nepomuzu (leda nekdo jiny, nebo ze byste blize popsali jaky je to presne datovy typ). Pro jistotu se jeste zeptam - mluvi se tu o beznem x86 assembleru? (jestli to neni assembler pro nejake jine procesory nebo tak)
Offline

Na 16-ti bitovem procesoru to bude asi slozitejsi no.
Ten Single se da porovnavat skoro stejne jako normalni cele cislo - na zacatku je znamenkovy bit, pak exponent, pak mantisa. Exponent ma vetsi vahu nez mantisa (kdyz ma jedno cislo exponent vetsi nez druhe, pak je urcite vetsi - nezavisle na mantise. Kdyz jsou exponenty stejne, tak rozhoduje mantisa). Takze kdyz by se odmyslelo znamenko (pro kladna cisla), tak se to da porovnavat stejne jako normalni cele cislo (protoze exponent je na vyssich bitech).
Je potreba jeste osetrit to znamenko, o tom kdytak pozdeji.
Jestli mate 16-ti bitovy procesor, tak budete muset nejspis zpracovat (porovnat, presunout a podobne...) nejdriv horni 2 byty, a pak dolni 2 byty. Nevim, jake tam mate instrukce, ani kolik registru, a jestli si muzete ukladat mezivysledky treba do pameti nebo tak, takze moc dopodrobna s tim asi nepomuzu. Jak to napsat pro obycejne 32-bitove cele cislo (Double word) by jste vedeli?
Offline