Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Q122 START
- LAD GR1,ARY
- LD GR2,N
- CALL LREVRS
- RET
- ARY DC #B3D1,#8000,#0001
- N DC 3 ; ARYの3語の入れ替え
- END
- REVRS START
- RPUSH
- LD GR4,=0 ; 結果のビット列を初期化
- LAD GR2,15 ; ループカウンタ
- LD GR3,0,GR1 ; GR3 ← ビット列
- LOOP SLL GR4,1 ; 結果のビット列を左シフト
- SRL GR3,1 ; 元のビット列を右シフト
- JOV ON
- JZE FIN1 ; 残りのビット列の残りのビット列は全てゼロ
- JUMP OFF
- ON OR GR4,=#0001
- OFF SUBA GR2,=1
- JMI FIN2 ; 16ビット処理済み
- JUMP LOOP
- FIN1 SLL GR4,0,GR2 ; 結果のビット列を残りのビット数だけシフト
- FIN2 ST GR4,0,GR1
- RPOP
- RET
- END
- LREVRS START
- RPUSH
- LD GR3,GR1
- LD GR4,GR2
- SUBA GR4,=1
- JZE LOOP2
- ADDA GR4,GR1
- LOOP1 LD GR5,0,GR3 ; 以下4行でGR3が指す語とGR4が指す語の内容を
- LD GR6,0,GR4 ; 入れ替える
- ST GR5,0,GR4
- ST GR6,0,GR3
- LAD GR3,1,GR3 ; GR3を次の語に位置付ける
- LAD GR4,-1,GR4 ; GR4を一つ前の語に位置付ける
- CPA GR3,GR4
- JMI LOOP1
- LOOP2 CALL REVRS
- LAD GR1,1,GR1
- SUBA GR2,=1
- JNZ LOOP2
- FIN3 RPOP
- RET
- END
Add Comment
Please, Sign In to add comment