Asembler - 90s8515

Feb 14, 2005 7 Replies

Witam W jaki sposob liczy sie na liczbach >255 ? Gdy probuje:



ldi r16,300



to dostaje komunikat o bledzie, ale sie nie dziwie, bo na 8 bitach nie da sie za bardzo zapisac liczby powyzej 255. Czy trzeba "rozbic" ja na kilka rejestrow? Jak to zapisac, bo nie rozumiem..


Najprosciej i najszybciej poszukaj noty na temat arytmetyki, dla chyba kazdej rodziny chyba kazdy szanujacy sie producent podaj podstawowe procedury na arytmetyke 16 i 32 bity jako absolutne minimum. Alternatywnie poszukaj procedur w sieci - powinno byc tego sporo.

Użytkownik Ania i Grześ napisał:

Artymetyka wielobajtowa :)

300 - 255 = 45 -> i to trzeba włożyć do 'wyższego' bajtu.

Czyli np.

ldi r15, 255 ldi r16, 45

Ale dodawanie i odejmowanie liczb 2bajtowych to ... najlepiej zastosować jakieś biblioteki ;) żeby nie wynajdować koła na nowo...

eLeS

chyba raczej starszy: 1 m³odszy 44

tak sie to liczy

300/256=1,17.... 300-256*1=44 stad 1 starszy bajt i 44 m³odszego

Pozdrawiam AzaZeL

Masz racje i dlatego najlepiej zamiast tworzyc procedurki od nowa uzyc gotowych bibliotek procedur.

Np. dołączane przez Atmela do assemblera...

U¿ytkownik "Ania i Grze¶" snipped-for-privacy@maila.pl napisa³ w wiadomo¶ci news:cupoj6$5ul$ snipped-for-privacy@inews.gazeta.pl...

ldi r16, low(300) ldi r17, high(300) odpowiadajac na pytanie, trzeba, nie ma innej mozliwosci.

A w jaki sposob liczy sie na liczbach >9 w systemie dziesietnym za pomoca algorytmow znanych ze szkoly podstawowej? Odpowiedz: tak samo, tyko tu uklad pozycyjny ma baze nie 10, lecz 256.

Oczywiscie.

Pozdrawiam Piotr Wyderski

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required