Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. .ORIG x3000
  2. input LEA r0, text
  3. PUTS
  4. LEA r1, number
  5. AND r2, r2, #0
  6. ADD r2, r2, #10
  7.  
  8. check GETC
  9. ADD r1, r0, #0
  10. ADD r1, r1, #1
  11. OUT
  12. ADD r1, r0, #0
  13. LD r3, plus
  14. ADD r0, r1, r3
  15. BRz pos
  16. LD r3, minus
  17. ADD r0, r1, r3
  18. BRz neg
  19. LEA r0, invalid
  20. PUTS
  21. BRnzp input
  22.  
  23.  
  24. pos
  25. GETC
  26. ADD r1, r0, #0
  27. ADD r1, r1, #1
  28. OUT
  29. ADD r1, r0, #0
  30. ADD r0, r0, #-10
  31. BRz done
  32.  
  33. LD r4, asciimin
  34. ADD r1, r1, r4
  35.  
  36. times1 ADD r1, r1, r1
  37. ADD r2, r2, #-1
  38. LDR r0, r2, #0
  39. BRz pos
  40. BRnp times1
  41.  
  42. LEA r2, masks
  43. loop LDR r3, r2, #0
  44. ADD r2, r2, #1
  45. AND r0, r1, r3
  46.  
  47. BRnz else
  48. LD r0, ascii1
  49. BRnzp finish
  50. else LD r0, ascii0
  51. finish OUT
  52. LEA r0, space
  53. PUTS
  54. ADD r4, r4, #1
  55. ADD r0, r4, #-16
  56. BRn loop
  57. BRnzp done
  58.  
  59. neg
  60. GETC
  61. ADD r1, r0, #0
  62. ADD r1, r1, #1
  63. OUT
  64. ADD r1, r0, #0
  65. ADD r0, r0, #-10
  66. BRz done
  67.  
  68. LD r4, asciimin
  69. ADD r1, r1, r4
  70.  
  71. times2 ADD r1, r1, r1
  72. ADD r2, r2, #-1
  73. LDR r0, r2, #0
  74. BRz neg
  75. BRnp times2
  76.  
  77. LEA r2, masks
  78. loop2 LDR r3, r2, #0
  79. ADD r2, r2, #1
  80. AND r0, r1, r3
  81.  
  82. BRnz else2
  83. LD r0, ascii1
  84. BRnzp finish2
  85. else2 LD r0, ascii0
  86. finish2 OUT
  87. LEA r0, space
  88. PUTS
  89. ADD r4, r4, #1
  90. ADD r0, r4, #-16
  91. BRn loop2
  92. done
  93. HALT
  94.  
  95. number .BLKW 99
  96. ascii0 .FILL x30
  97. ascii1 .FILL x31
  98. asciimin .FILL x-30
  99. times10 .FILL #10
  100. minus .FILL x-2D
  101. plus .FILL x-2B
  102. space .STRINGZ " "
  103. text .STRINGZ "Enter an integer between -511 and +511: "
  104. invalid .STRINGZ "\nThe input is invalid.\n"
  105.  
  106. masks .FILL b1000000000000000
  107. .FILL b0100000000000000
  108. .FILL b0010000000000000
  109. .FILL b0001000000000000
  110. .FILL b0000100000000000
  111. .FILL b0000010000000000
  112. .FILL b0000001000000000
  113. .FILL b0000000100000000
  114. .FILL b0000000010000000
  115. .FILL b0000000001000000
  116. .FILL b0000000000100000
  117. .FILL b0000000000010000
  118. .FILL b0000000000001000
  119. .FILL b0000000000000100
  120. .FILL b0000000000000010
  121. .FILL b0000000000000001
  122.  
  123. .END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement