+++ /dev/null
-PREVRS START
- RPUSH
- LD GR4,0,GR1 ; ビット列を保存
- CALL REVRS ; ビット列のビットの並びを逆転
- LD GR5,0,GR1 ; GR5 ← 逆転したビット列
- LD GR6,=16
- SUBA GR6,GR3 ; GR6 ← 16 - q
- SRL GR5,0,GR2 ; 逆転した部分ビット列αを右端に移動
- SLL GR5,0,GR6 ; 逆転した部分ビット列αを左端に移動
- SRL GR5,0,GR2 ; 逆転した部分ビット列αを p ビットに移動
- LD GR6,=#8000
- SRA GR6,-1,GR3 ; q ビット連続した1の並びを作成
- SRL GR6,0,GR2
- XOR GR6,=#FFFF
- AND GR6,GR4 ; 元のビット列中の部分ビット列αにゼロを設定
- OR GR6,GR5
- ST GR6,0,GR1
- RPOP
- RET
- END