Przesunięcie arytmetyczne: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
 
mNie podano opisu zmian
Linia 1: Linia 1:
[[6502]] oferuje rozkazy przesunięć w prawo (LSR) i w lewo (ASL). Przesunięcie logiczne w lewo, oferowane przez niektóre procesory (np. jako LSL w Morotolach 68k) nie różni się niczym od przesunięcia logicznego. Natomiast w przypadku przesunięcia w prawo zachodzi istotna różnica: w przesunięciu logicznym (LSR) bit 7 uzyskuje wartość 0, natomiast przy przesunięciu arytmetycznym (ASR) bit 7, jako bit znaku, zachowuje swoją poprzednią wartość.
[[6502]] oferuje rozkazy przesunięć w prawo (LSR) i w lewo (ASL). Przesunięcie logiczne w lewo, oferowane przez niektóre procesory (np. jako LSL w Morotolach 68k) nie różni się niczym od przesunięcia arytmetycznego. Natomiast w przypadku przesunięcia w prawo zachodzi istotna różnica: w przesunięciu logicznym (LSR) bit 7 uzyskuje wartość 0, natomiast przy przesunięciu arytmetycznym (ASR) bit 7, jako bit znaku, zachowuje swoją poprzednią wartość.


Rozkazu ASR w procesorze 6502 nie ma, można jednak ten brak dość prosto uzupełnić (dana w akumulatorze):
Rozkazu ASR w procesorze 6502 nie ma, można jednak ten brak dość prosto uzupełnić (dana w akumulatorze):

Wersja z 10 paź 2012, 09:04

6502 oferuje rozkazy przesunięć w prawo (LSR) i w lewo (ASL). Przesunięcie logiczne w lewo, oferowane przez niektóre procesory (np. jako LSL w Morotolach 68k) nie różni się niczym od przesunięcia arytmetycznego. Natomiast w przypadku przesunięcia w prawo zachodzi istotna różnica: w przesunięciu logicznym (LSR) bit 7 uzyskuje wartość 0, natomiast przy przesunięciu arytmetycznym (ASR) bit 7, jako bit znaku, zachowuje swoją poprzednią wartość.

Rozkazu ASR w procesorze 6502 nie ma, można jednak ten brak dość prosto uzupełnić (dana w akumulatorze):

    cmp #$80
    ror

Autorem rozwiązania jest mono.