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.

Co robią kolejne linie kodu?

fliper_katrill 12 Paź 2010 18:30 1073 5
  • #1 12 Paź 2010 18:30
    fliper_katrill
    Poziom 20  

    Witam szanownych kolegów!
    Czy ktoś mógłby mi pomóc rozszyfrować kod mikroasemblera?
    Wykładowcy mają gdzieś skąd tą wiedzę znajdę a mi zależy na zrozumieniu tego kodu:

    Code:

    equ liczba_1_L : R0
    equ liczba_1_H : R1
    equ liczba_2_L : R2
    equ liczba_2_H : R3
    equ licznik : R4
    accept liczba_1_L :ABCDh
    accept liczba_1_H :1234h
    accept liczba_2_L :FFFFh
    accept liczba_2_H :8BCAh
    accept licznik :5
    link L1:CT  \podepnij pod multipexer
    {add liczba_1_l,liczba_2_l; load RM,flags;} \ zaladowanie do rejestru RM flagi przeniesienia
    {add liczba_1_h,liczba_2_h, RM_c;} \tu ma wrzucac do rejestru 5 RPCT mamy zrobic
    {push;}
    {sll liczba_1_l;}
    {sl.25 liczba_1_h;}
    {sub licznik,0 ; load RM,flags;}
    {loop not RM_Z;}

    {end;}

    Przyjmijcie proszę że podstawową wiedzę mam. Męczy mnie kolejność działań no i co po co a nie co inne :)
    Oczywiście nie wszystko tylko od linijki link L1:CT, program dodaje 2 liczby 32 bitowe.
    Mikrokontroler hmmmm nie wiem ćwiczę w programie teoretycznym z architekturą von Neumann'a - ArchiteX.

    0 5
  • #2 12 Paź 2010 19:00
    arnoldziq
    Moderator Programowanie

    Proszę, zgodnie z regulaminem pkt 11.1, o usunięcie słów PROBLEM lub/i POMOC z tytułu. Prośba dotyczy także wszelkich wariacji typu: kłopot, pomocy, problemy itd.
    Proszę również podać o jaki procesor (mikro-kontroler) chodzi.

    0
  • #3 13 Paź 2010 14:42
    szelus
    Specjalista - Mikrokontrolery

    Spojrzałem z ciekawości. Ten program robi trochę więcej, niż tylko dodaje dwie liczby - ta operacja kończy się przed rozkazem push.
    Wyjaśnienie co, jak i dlaczego zajęło by długo - zwłaszcza, że widzę ten system pierwszy raz w życiu i musiałbym wnikać w szczegóły - to chyba coś złożone na procesorach bit-slice'owych, jężeli mnie skleroza nie zawodzi. Zabytek muzealno-akademicki. ;)

    W każdym razie, dokumentację systemu zawartą w pliku ArchiteX.chm przeczytałeś? Tam jest wszystko dość dokładnie opisane.
    Jakbyś miał bardziej szczegółowe pytania to mogę spróbować pomóc.

    0
  • #4 13 Paź 2010 21:34
    fliper_katrill
    Poziom 20  

    A dzięki za odzew :) Przysiedziałem ciut i zrozumiałem o co w tym programie chodzi. Ja mam poprawić te przesunięcia bitowe sll i sl.25 aby były w pętli RPCT zamiast LOOP. Czytałem helpa, ale do bani jest ten kawałek o składni polecenia RPCT, może kolega ma jakiś pomysł?

    0
  • Pomocny post
    #5 14 Paź 2010 13:05
    szelus
    Specjalista - Mikrokontrolery

    O ile dobrze zrozumiałem:

    Code:

    {ldct 5;}
    petla {sll liczba_1_l;}
    {sl.25 liczba_1_h;}
    {rpct petla;}

    O coś takiego chodziło? Bo jeżeli należy wykorzystać do tego stałą z rejestru licznik (R4), to chyba da się to zrobić, ale raczej nie wprost. Trzeba by trochę poeksperymentować z emulatorem.

    0
  • #6 14 Paź 2010 21:42
    fliper_katrill
    Poziom 20  

    Dziękuję , strzał w 10 :) Chyba równolegle doszedłem do tego rozwiązania. Martwi mnie tylko jedno... tak zachwalany przez wykładowcę help posiadający "wyczerpujące" opisy nie poinformował mnie w przykładzie o konieczności dokonania wpisu do RA/C a nie prościej byłoby dać taki przykład? no cóż to pytanie retoryczne :) Boję się tylko o to, że to był najprostszy programik a teraz będzie pod górkę, mam nadzieję, że po kolejnych zajęciach również mi pomożesz w nowym zadaniu, dzięki :)

    0