multimedia logic

Tu piszemy wiadomość, jeżeli zadanie domowe sprawia kłopot
i szybko potrzebujemy pomocy w rozwiązaniu.
ODPOWIEDZ
gryf
-
Posty: 4
Rejestracja: 25 sty 2010, 20:23
Lokalizacja: Zgierz

multimedia logic

Post autor: gryf » 26 sty 2010, 16:35

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

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 26 sty 2010, 17:14

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ś.

gryf
-
Posty: 4
Rejestracja: 25 sty 2010, 20:23
Lokalizacja: Zgierz

Post autor: gryf » 26 sty 2010, 18:15

po części zrozumiałem ale chyba w tym programie muszę użyć ascii hex czyli ze znakiem od 30 do 39, do tego sprawdzenia rozumiem ale później już jest nie co gorzej

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 26 sty 2010, 20:29

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.

gryf
-
Posty: 4
Rejestracja: 25 sty 2010, 20:23
Lokalizacja: Zgierz

Post autor: gryf » 27 sty 2010, 20:11

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

Awatar użytkownika
Ertew
Użytkownik
Posty: 1414
Rejestracja: 03 lip 2005, 10:36
Lokalizacja: Leszno
Kontakt:

Post autor: Ertew » 27 sty 2010, 21:28

Niestety więcej nie pomogę.
Podałem rozwiązanie, które przyszło mi do głowy. Realizacja to już odrębne zagadnienie, na czym się nie znam.

Sprawdzenie to prosta instrukcja warunkowa. Porównanie czy pierwszy odebrany znak reprezentuje - czy +.

gryf
-
Posty: 4
Rejestracja: 25 sty 2010, 20:23
Lokalizacja: Zgierz

Post autor: gryf » 28 sty 2010, 17:58

dzięki w każdym bądź razie za pomoc spróbuje jakoś to zmontować według instrukcji którą mi podałeś

ODPOWIEDZ