--- /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