Guest User

Untitled

a guest
Nov 18th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.62 KB | None | 0 0
  1. Q122 START
  2. LAD GR1,ARY
  3. LD GR2,N
  4. CALL LREVRS
  5. RET
  6. ARY DC #B3D1,#8000,#0001
  7. N DC 3 ; ARYの3語の入れ替え
  8. END
  9. REVRS START
  10. RPUSH
  11. LD GR4,=0 ; 結果のビット列を初期化
  12. LAD GR2,15 ; ループカウンタ
  13. LD GR3,0,GR1 ; GR3 ← ビット列
  14. LOOP SLL GR4,1 ; 結果のビット列を左シフト
  15. SRL GR3,1 ; 元のビット列を右シフト
  16. JOV ON
  17. JZE FIN1 ; 残りのビット列の残りのビット列は全てゼロ
  18. JUMP OFF
  19. ON OR GR4,=#0001
  20. OFF SUBA GR2,=1
  21. JMI FIN2 ; 16ビット処理済み
  22. JUMP LOOP
  23. FIN1 SLL GR4,0,GR2 ; 結果のビット列を残りのビット数だけシフト
  24. FIN2 ST GR4,0,GR1
  25. RPOP
  26. RET
  27. END
  28. LREVRS START
  29. RPUSH
  30. LD GR3,GR1
  31. LD GR4,GR2
  32. SUBA GR4,=1
  33. JZE LOOP2
  34. ADDA GR4,GR1
  35. LOOP1 LD GR5,0,GR3 ; 以下4行でGR3が指す語とGR4が指す語の内容を
  36. LD GR6,0,GR4 ; 入れ替える
  37. ST GR5,0,GR4
  38. ST GR6,0,GR3
  39. LAD GR3,1,GR3 ; GR3を次の語に位置付ける
  40. LAD GR4,-1,GR4 ; GR4を一つ前の語に位置付ける
  41. CPA GR3,GR4
  42. JMI LOOP1
  43. LOOP2 CALL REVRS
  44. LAD GR1,1,GR1
  45. SUBA GR2,=1
  46. JNZ LOOP2
  47. FIN3 RPOP
  48. RET
  49. END
Add Comment
Please, Sign In to add comment