Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Z binarnaego na Heksadecymalny

pawelkarawan 14 Kwi 2011 00:51 894 2
  • #1 14 Kwi 2011 00:51
    pawelkarawan
    Poziom 2  

    Witam, mam pytanie , czy ktoś mogłby mi powiedzieć jak napisać program w asemblerze który przekształca liczbe w systemie binarnym na system szestnastkowy. Byłbym wdzięczny bo nie mam pomysłu jak to rozgryźć, nie wiem czy to robić pętlą w jakie to wpisać rejestry, jak wyprowadzić wynik. Ratunku!!!!

    0 2
  • #2 14 Kwi 2011 01:07
    Eagle
    Poziom 23  

    Zakładam że dana jest wartość 8 bit a należy przekształcić ją do wydruku w kodzie ASCI HEX

    1) starsze 4 bity przesuwasz w prawo x 4 czyli ( /16)
    2) dodajesz kod ASCII "0" czyli 0x30
    3) sprawdzasz czy wynik przekroczył kod ASCII "9" jeśli tak dodajesz 0x07
    4) w wyniku uzyskujesz starszy znak wartości HEX
    5) uzyskujesz 4 młodsze bity np funkcją AND
    6) powtarzasz kroki 2 - 3
    7) w wyniku uzyskujesz młodszy znak wartości HEX

    Na pozostałe pytania nie sposób odpowiedzieć bo asm każdego uC jest inny a ty nie podałeś jaki to uC. A wyprowadzenie wyniku może być na wiele sposobów np. Morsem, RS232 lub na LCD.

    Eagle

    0
  • #3 17 Kwi 2011 10:14
    kots
    Poziom 11  

    "liczbe w systemie binarnym na system szestnastkowy"

    Zadając pytanie w ten sposób nie do końca wiadomo czy:

    1. Masz napis w systemie binarnym i masz go zamienić na napis w systemie szesnastkowym

    2. Masz liczbę binarną (np w zmiennej typu integer) i chcesz ją zamienić na napis w systemie szesnastkowym. Tu jest kilka problemów, między innymi jaka jest reprezentacja liczby w pamięci a jaka napisu.

    3. A może masz liczbę binarną i chcesz mieć liczbę szesnastkową. Wówczas nie musisz robić. Czy to jest liczba binarna, szesnastkowa, cz też dziesiętna zależy od interpretacji tego co jest w pamięci.

    0