OK,
dotaz, nějak mi nedává logiku to jak je zde něco vysvětleno. Použiji tedy svou zvrácenou logiku a omlouvám se, když napíšu pitomost, začínám a učím se!
Článek Assembler a systém z Amiga Review 5:
Citace z odstavce pro "Stavový registr SR"
1) Citace: "V případě (A) dostaneme 126($7E)+3=129($81),což je mimo rozsah. Bude tedy nastaven příznak přenosu (overflow) a výsledná hodnota (A) bude po operaci -127($81)"
Rozumím tomu, že jsme v prvním prípadě použili Byte se znaménkem (overflow). To "-" před 127 je tam kvůli tomu přetečení? Výslední hodnota "A" bude po operaci -127, proč je tedy zatím v závorce 129ka? (Hexa $81 = 129). Hodnota 129 bude ztracena?
2) Citace: "V případě (B) dostaneme 126($7E)+3 = 129($81), což je v platném rozsahu, takže příznak přenosu (carry) nastaven nebude."
Zde jsme použili Byte bez znaménka (příznak carry "C"). Proč se nám příznak přenosu změní z "C" na "V"? Jak se píše "takže příznak přenosu (carry) nastaven nebude."
Dle mne ve 2) zůstane příznak přenosu "C". Jsme přeci pořád v rozsahu 1 Byte s příznakem "C" tedy v rozsahu 0-255 ne? Příznak "C" nebude nastaven, kdyby hodnota čísla přesáhla v případe 2) číslo 255 a pak by se změnil příznak z "C" na "V"? A pak by měla hodnota Bytu B číslo -255?
dotaz, nějak mi nedává logiku to jak je zde něco vysvětleno. Použiji tedy svou zvrácenou logiku a omlouvám se, když napíšu pitomost, začínám a učím se!
Článek Assembler a systém z Amiga Review 5:
Citace z odstavce pro "Stavový registr SR"
Nejlépe to ozřejmí příklad: Mějme BYTE SE ZNAMÉNKEM (A) a BYTE BEZ ZNAMÉNKA (B). Jak víte, rozsah (A) je od -128 do +127, rozsah (B) od 0 do 255. Jak (A) tak i (B) budou mít hodnotu 126 ($7E). Co se stane, když k (A) i (B) přičteme 3? V případě (A) dostaneme 126($7E)+3=129($81),což je mimo rozsah. Bude tedy nastaven příznak přenosu (overflow) a výsledná hodnota (A) bude po operaci -127($81). V případě (B) dostaneme 126($7E)+3 = 129($81), což je v platném rozsahu, takže příznak přenosu (carry) nastaven nebude. Všimněte si, že v obou případech je šestnáctková reprezentace čísel stejná, rozdíl je pouze ve způsobu, jakým tyto hodnoty interpretujeme.
Rozumím tomu, že jsme v prvním prípadě použili Byte se znaménkem (overflow). To "-" před 127 je tam kvůli tomu přetečení? Výslední hodnota "A" bude po operaci -127, proč je tedy zatím v závorce 129ka? (Hexa $81 = 129). Hodnota 129 bude ztracena?
2) Citace: "V případě (B) dostaneme 126($7E)+3 = 129($81), což je v platném rozsahu, takže příznak přenosu (carry) nastaven nebude."
Zde jsme použili Byte bez znaménka (příznak carry "C"). Proč se nám příznak přenosu změní z "C" na "V"? Jak se píše "takže příznak přenosu (carry) nastaven nebude."
Dle mne ve 2) zůstane příznak přenosu "C". Jsme přeci pořád v rozsahu 1 Byte s příznakem "C" tedy v rozsahu 0-255 ne? Příznak "C" nebude nastaven, kdyby hodnota čísla přesáhla v případe 2) číslo 255 a pak by se změnil příznak z "C" na "V"? A pak by měla hodnota Bytu B číslo -255?
Komentovat