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

assembler 8051 - Wyciąganie wartości z adresu rejestru

Rigid 01 Lip 2015 12:21 1425 8
REKLAMA
  • #1 14816517
    Rigid
    Poziom 9  
    Posty: 60
    Ocena: 2
    Witam.

    Czy istnieje jakas osoba która potrafi dość jasno wyjaśnić takie zagadnienie:

    Jest liczba zapisana w pamięci do której adres jest w rejestrze np R3.
    Jak najlepiej wyciągnąć wartość tej liczby
    i jeśli jest ona równa y to do adresu 5 przypisujemy 1
    a jeśli nie, to do rejestru R4 przypisujemy 0
  • REKLAMA
  • #2 14816667
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 14818569
    greg789
    Poziom 16  
    Posty: 132
    Pomógł: 20
    Ocena: 34
    Rigid napisał:
    Witam.

    Czy istnieje jakas osoba która potrafi dość jasno wyjaśnić takie zagadnienie:

    Jest liczba zapisana w pamięci do której adres jest w rejestrze np R3.
    Jak najlepiej wyciągnąć wartość tej liczby
    i jeśli jest ona równa y to do adresu 5 przypisujemy 1
    a jeśli nie, to do rejestru R4 przypisujemy 0


    8051 ma architekturę harwardzką, stąd ma oddzielone pamięci programu (zazwyczaj ROM)) i danych (RAM).
    Dodatkowo każda z nich może być wewnętrzną i (lub) zewnętrzną.
    Stąd są różnice w sposobach dostępu, napisz o jaki rodzaj pamięci ci chodzi.
    Do tego aby było ciekawiej to dane (stałe) można przechowywać w każdej z tych pamięci, choć sposób dostępu będzie różny.
  • #4 14818622
    2rs232
    Poziom 18  
    Posty: 141
    Pomógł: 28
    Ocena: 20
    Rigid napisał:
    Jest liczba zapisana w pamięci do której adres jest w rejestrze np R3.
    Jak najlepiej wyciągnąć wartość tej liczby

    Poczytaj o adresowaniu pośrednim :wink:
    Kod: x86 Assembly
    Zaloguj się, aby zobaczyć kod
  • #5 14822018
    Rigid
    Poziom 9  
    Posty: 60
    Ocena: 2
    assembler jest dla mnie bardzo niezrozumiały po kursie C++.

    Czyli będzie to wyglądało tak?:
    Kod: x86 Assembly
    Zaloguj się, aby zobaczyć kod

    (może się ktoś obrazić, ale ten język jest strasznie toporny)
  • REKLAMA
  • #6 14822064
    greg789
    Poziom 16  
    Posty: 132
    Pomógł: 20
    Ocena: 34
    Ten język jest bardzo prosty, wystarczy dobrze go zrozumieć.
    Instrukcje warunkowe we wszystkich procesorach działają tak samo, albo dokonują skoku, albo wykonują następną instrukcję.
    W tym wypadku wykona następną instrukcję po
    cjne A,y,rowne.
    czyli też MOV R5,#4 ; jesli ma do R5 wpisać wartość 4 ,znak "#" oznacza wartość bezpośrednią , a "D" jest zbyteczne dla wartości w systemie dziesiętnym
  • REKLAMA
  • #8 14822412
    Konto nie istnieje
    Poziom 1  
  • #9 14822789
    greg789
    Poziom 16  
    Posty: 132
    Pomógł: 20
    Ocena: 34
    Kod: x86 Assembly
    Zaloguj się, aby zobaczyć kod

Podsumowanie tematu

✨ W dyskusji poruszono zagadnienie wyciągania wartości z adresu rejestru w assemblerze 8051. Użytkownik zapytał, jak odczytać liczbę z pamięci, której adres znajduje się w rejestrze R3, oraz jak przypisać wartość do rejestru R4 lub adresu 5 w zależności od porównania z wartością y. Odpowiedzi wskazują na różne metody adresowania, w tym adresowanie pośrednie oraz użycie instrukcji skoku warunkowego (CJNE). Uczestnicy podali przykłady kodu, w tym instrukcje MOV i CJNE, oraz omówili różnice w dostępie do pamięci w architekturze harwardzkiej. Wskazano również na konieczność zrozumienia podstawowych instrukcji rdzenia C51.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA