multimedia logic
multimedia logic
muszę przerobić mikrokomputer tak aby odczytywał z wejściowego pliku tekstowego do pamięci liczby dwucyfrowej ze znakiem w formacie ASCII (np."-10, +25") i wyprowadził na ekran alfanumeryczny w formacie binarnym U2 w postaci liczby ośmiobitowej (np. "10010011, 01011111"), a nie wiem jak to zrobić pomoże ktoś
- Załączniki
-
- mikrokomputer_dydaktyczny.zip
- (10.88 KiB) Pobrany 534 razy
Cyfry w kodzie ASCII są zapisane pomiędzy znakiem nr. 48 a 57 (dziesiętnie), więc wystarczy od odebranego znaku odjąć 48, a otrzymamy cyfrę. Do tego jeszcze sprawdzenie, czy przesłany znak jest cyfrą, czy nie.
Pierwszą cyfrę dodajemy lub odejmujemy (w zależności od znaku) dziesięciokrotnie, a drugą tylko raz do pustego bajtu.
Wysłanie danych na monitor to wykonanie logicznego AND (osobno na każdym bicie) maskami o wartości
00000001 = 1
00000010 = 2
00000100 = 4 itd.
z bajtem uzyskanym z danych odebranych.
Następnie wysłanie znaku nr 48 (0) jeśli wynik to 0, lub 49 (1) jeśli wynik mnożenia to 1.
Mam nadzieje, że choć trochę zrozumiałeś.
Pierwszą cyfrę dodajemy lub odejmujemy (w zależności od znaku) dziesięciokrotnie, a drugą tylko raz do pustego bajtu.
Wysłanie danych na monitor to wykonanie logicznego AND (osobno na każdym bicie) maskami o wartości
00000001 = 1
00000010 = 2
00000100 = 4 itd.
z bajtem uzyskanym z danych odebranych.
Następnie wysłanie znaku nr 48 (0) jeśli wynik to 0, lub 49 (1) jeśli wynik mnożenia to 1.
Mam nadzieje, że choć trochę zrozumiałeś.
Ustawienie zmiennej wynik na 0.
Decyzja, czy odebrany został znak +, czy -.
Teraz dwie alternatywne drogi, w zależności od tego, czy wykonujesz dodawanie, czy odejmowanie.
Odebranie cyfry dziesiątek, przerobienie go na postać numeryczną 0-9 (z ASCII),
pomnożenie razy 10, dodanie/odjęcie od zmiennej wynik.
Odebranie cyfry jedności, przerobienie na postać numeryczną, dodanie/odjęcie od wyniku.
Następnie wyświetlenie wyniku w postaci binarnej.
Trzeba kolejno sprawdzić, czy każdy z bitów ma wartość 1, czy 0.
Można wykonać iloczyn logiczny zmiennej wynik i maski posiadającej tylko jeden bit ustawiony.
Tu przydała by się pomoc kogoś bardziej obeznanego.
Decyzja, czy odebrany został znak +, czy -.
Teraz dwie alternatywne drogi, w zależności od tego, czy wykonujesz dodawanie, czy odejmowanie.
Odebranie cyfry dziesiątek, przerobienie go na postać numeryczną 0-9 (z ASCII),
pomnożenie razy 10, dodanie/odjęcie od zmiennej wynik.
Odebranie cyfry jedności, przerobienie na postać numeryczną, dodanie/odjęcie od wyniku.
Następnie wyświetlenie wyniku w postaci binarnej.
Trzeba kolejno sprawdzić, czy każdy z bitów ma wartość 1, czy 0.
Można wykonać iloczyn logiczny zmiennej wynik i maski posiadającej tylko jeden bit ustawiony.
Tu przydała by się pomoc kogoś bardziej obeznanego.
zrozumiałem jak to ma być zrobione ale mam problem z tym, że nie za bardzo wiem jak to teraz zrobić w tym programie multimedia logic udało mi się jak na razie odjąć od znaku ASCII liczbę, nie za bardzo wiem jak zrobić to sprawdzenie w tym programie, a zrobiłem to wymnożenie razy 10 ale nie jestem pewien czy to jest akurat dobrze