Rozszerzenie arytmetyczne

Z Atariki
Wersja z 12 paź 2012, 21:16 autorstwa Xxl (dyskusja | edycje) (optymalizacja)
Przejdź do nawigacji Przejdź do wyszukiwania

Kod dokonuje rozszerzenia arytmetycznego danej z rozmiaru bajtu do 16-bitowego słowa, tzn. powielenia bitu znaku tak, żeby z 8-bitowej wartości dodatniej powstała 16-bitowa wartość dodatnia, a z ujemnej - ujemna. Daną wejściową procedury - znajdującą się w akumulatorze - jest bajt do rozszerzenia. Daną wyjściową - do odebrania również w akumulatorze - jest starszy bajt 16-bitowego słowa powstałego po rozszerzeniu.

   asl
   lda #0
   adc #$ff
   eor #$ff

Druga szybsza i krótsza metoda

   ora #$7f
   bmi _rts
   lda #$00

Pomysł został zaprezentowany przez mono.