logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

8051 asembler: przykładowe listingi do zadań arytmetycznych (dodawanie, mnożenie, dzielenie)

bert86 08 Kwi 2008 14:16 1415 1
REKLAMA
  • #1 5007244
    bert86
    Poziom 10  
    Posty: 6
    Witam
    Na czwartek muszę przygotować listingi programów napisanych w asemblerze które wykonają poniższe działania:

    1. Dane są liczby: A=0F1h, B=00011111b. Obliczyć binarnie A+B, A-B, B-A. Podać wynik w postaci binarnej i szesnastkowej.
    2. Napisać program mnożenia x4 liczby umieszczonej w rejestrze R7 bez użycia instrukcji mul ab.
    3. Napisać program obliczający wartość średnią 4 liczb umieszczonych kolejno od adresu 30h. Wynik podać w rejestrze R7.
    4. Obliczyć sumę kwadratów dwóch liczb, umieszczonych w rejestrach R6, R7. Wynik umieścić w rejestrach R4, R5.
    5. Napisać program dzielenia przez 4 liczby umieszczonej w rejestrze R7 bez użycia instrukcji div ab.

    W razie możliwości proszę o pomysły jak się do tego zabrać, jestem kompletnie zielony jeśli chodzi o ten język. Programy nie muszą być długie, chodzi tylko o podstawowe zrealizowanie poszczególnych działań.
  • REKLAMA
  • #2 5007626
    Paweł Es.
    VIP Zasłużony dla elektroda
    Posty: 6981
    Pomógł: 1236
    Ocena: 693
    bert86 napisał:
    Witam
    Na czwartek muszę przygotować listingi programów napisanych w asemblerze które wykonają poniższe działania:

    1. Dane są liczby: A=0F1h, B=00011111b. Obliczyć binarnie A+B, A-B, B-A. Podać wynik w postaci binarnej i szesnastkowej.
    2. Napisać program mnożenia x4 liczby umieszczonej w rejestrze R7 bez użycia instrukcji mul ab.
    3. Napisać program obliczający wartość średnią 4 liczb umieszczonych kolejno od adresu 30h. Wynik podać w rejestrze R7.
    4. Obliczyć sumę kwadratów dwóch liczb, umieszczonych w rejestrach R6, R7. Wynik umieścić w rejestrach R4, R5.
    5. Napisać program dzielenia przez 4 liczby umieszczonej w rejestrze R7 bez użycia instrukcji div ab.



    http://www.lodd.p.lodz.pl/kwbd/mikrokontroler.htm

    dzielenie przez potęgę liczby dwa uzyskuje się przesuwając liczbę bitowo w prawo a mnożenie przez przesunięcie w lewo. Należy pamiętać, że wynik mnożenia może być większy niż 255 co wymaga zapamiętania starszych bitów liczby w innym rejestrze.
REKLAMA