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

problem z asemblerem motorola 56300 mnozenie

skywalker 07 Maj 2006 19:15 1197 1
REKLAMA
  • #1 2602225
    skywalker
    Poziom 22  
    Witam mam jakąś zaćmę umysłową albo niewiem co ale prosty program nie ma ochoty mi działać oto program :
    --------------------------------------------------------------------
    org P:$100
    move #$10,x1 ; liczba 1 do x1
    move #$20,y0 ; liczba 2 do y0
    move #0,b ; wyzerowanie rejestru b
    mac y0,x1,b ; wymnoz y0 przez x1 i dodaj do b
    --------------------------------------------------------------------
    no i wynik w rejestrze b po tej operacji jest zupełnie nie oczekiwany
    bo wynosi b1=$040000
    i nie mam pojęcia czemu mam
    asembler linker i symulator 56300 od motoroli ? jakies sugestie ?
    ------------------------------------------------------------------------------
    oj duza gafa wynik operacji jest w postaci stałoprzecinkowej
    fixed point fractional

    mam do napisania prosty program generator liczb pseudolosowych
    ogólnie algorytm znam i nie jest on trundy s = s*a + c
    gdzie s to nasza zmienna losowa która ew ograniczamy
    a i c to stałe z tym ze c to stała nieparzysta i mam mały problem z przedstawieniem tego w liczbach stałoprzecinkowych (tzn w asm na tą motorole 56300 )
  • REKLAMA
  • #2 2603799
    skywalker
    Poziom 22  
    Witam ponownie
    napisałem coś co przypomina generator liczb pseudo losowych jeśli w tym tyg nic nikt nie zasugeruje proszę o zamknięcie tematu.

    org P:$100
    move #$024411,y1 ; liczba 'a' dodatnia wieksza niz 0.25
    move #$4f4f4f,x1 ; kolejna 'b' liczba dodatnia wieksza niz 0.5
    move #>$010011,y0 ; stala wieksza niz 0.125
    do #25,koniec
    mpy y1,x1,b ; mnozenie liczby a i b
    add y0,b ; dodajemy stala c
    move b,y1 ; powtarzamy operacje
    koniec

    ===============================================
    najwieksza liczba dodatnia jaka mozemy zapisac przy tym sys. zapisu
    to 7F FF FF czyli 0.9999
    a 80 00 00 to liczba najmniejsza czyli -1;
REKLAMA