Guest User

Untitled

a guest
Sep 26th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. set a, data
  2. jsr strlen
  3. set b, a
  4. set a, data
  5. jsr reverse
  6. jsr print
  7. set PC, end
  8.  
  9. ; reverse the string in place at [a], of len b
  10. :reverse
  11. set PUSH, a
  12. sub b, 1; len - 1
  13. set i, 0; start
  14. set a, POP
  15. :doreverse
  16. ifg i, b
  17. set PC, POP
  18.  
  19. set x, a
  20. add x, i
  21.  
  22. set y, a
  23. add y, b
  24.  
  25. set c, [x]
  26. set [x], [y]
  27. set [y], c
  28.  
  29. add i, 1
  30. sub b, 1
  31.  
  32. set PC, doreverse
  33.  
  34.  
  35. :strlen
  36. set i, 0
  37. :docount
  38. ife [a], 0x0
  39. set PC, countend
  40. add i, 1
  41. add a, 1
  42. set PC, docount
  43. :countend
  44. set a, i
  45. set PC, POP
  46.  
  47.  
  48. ; print the string at [a] ending with 0x0
  49. :print
  50. set PUSH, a
  51. set i, 0
  52. :doprint
  53. ife [a], 0x0
  54. set PC, printend
  55. set [0x8000+i], [a]
  56. add i, 1
  57. add a, 1
  58. set PC, doprint
  59. :printend
  60. set a, POP
  61. set PC, POP
  62.  
  63.  
  64. :end
  65. set PC, end
  66.  
  67. :data
  68. dat "Hello world"
  69.  
  70. :itoa
  71. set j, 0 ;index
  72. set z, 48
  73.  
  74. set i, a
  75. mod i, 10
  76. div a, 10
  77. add z, i
  78. set [0x1000+j], z
  79. add j, 1
  80. set z, 48
  81.  
  82. ifg a, 0
  83. sub PC, 11
  84.  
  85. set [0x1000+j], 0x0
  86. set PC, POP
Add Comment
Please, Sign In to add comment