Przesunięcie arytmetyczne: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
mNie podano opisu zmian |
m motrolololo |
||
| (Nie pokazano 2 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
| Linia 1: | Linia 1: | ||
[[6502]] oferuje rozkazy przesunięć w prawo (LSR) i w lewo (ASL). | [[6502]] oferuje rozkazy przesunięć w prawo (LSR) i w lewo (ASL). Tak zwane przesunięcie arytmetyczne w lewo (ASL) nie różni się niczym od logicznego (oferowanego przez niektóre procesory, np. jako LSL w Motorolach 68k). 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): | ||
Aktualna wersja z 10 paź 2012, 22:10
6502 oferuje rozkazy przesunięć w prawo (LSR) i w lewo (ASL). Tak zwane przesunięcie arytmetyczne w lewo (ASL) nie różni się niczym od logicznego (oferowanego przez niektóre procesory, np. jako LSL w Motorolach 68k). 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.