fork download
  1. global _start
  2.  
  3.  
  4. section .bss
  5.  
  6. strA resb 255
  7.  
  8.  
  9. section .data
  10.  
  11. msgNot db "String is Wrong", 0xA
  12. msgOk db "String is Good", 0xA
  13. chislo db 0
  14. Znak db 0
  15.  
  16. section .text
  17.  
  18. _start:
  19. mov eax, 3
  20. mov ebx, 0
  21.  
  22. mov ecx, strA
  23.  
  24. mov edx, 255
  25.  
  26. int 0x80
  27.  
  28.  
  29. xor ebx, ebx
  30.  
  31. mov edx, strA
  32.  
  33. doCheckRaz:
  34. mov byte [chislo], 0
  35.  
  36. doCheck:
  37.  
  38. mov bl, [edx] ; символ в bl
  39.  
  40. inc edx
  41.  
  42. cmp bl, 0x0
  43. je printOk
  44.  
  45.  
  46. cmp bl, '0'
  47.  
  48. jb mstk
  49.  
  50. cmp bl, '9'
  51.  
  52. ja mstk
  53.  
  54. mov byte [chislo], 1
  55. mov byte [Znak], 0
  56. jmp doCheck
  57.  
  58. mstk:
  59. cmp byte [Znak], 1
  60. je printNOT
  61.  
  62. cmp bl, ' '
  63.  
  64. je doCheckRaz
  65.  
  66. cmp bl, ','
  67.  
  68. je doCheckRaz
  69.  
  70. cmp bl, '-'
  71.  
  72. je PlMn
  73.  
  74. cmp bl, '+'
  75.  
  76. je PlMn
  77.  
  78. jmp printNOT
  79.  
  80. PlMn:
  81. cmp byte [chislo], 0
  82. jne printNOT
  83. mov byte [chislo], 1
  84. mov byte [Znak], 1
  85. jmp doCheck
  86.  
  87. printNOT:
  88. mov eax, 4
  89.  
  90. mov ebx, 1
  91.  
  92. mov ecx, msgNot
  93.  
  94. mov edx, 15
  95.  
  96. int 0x80
  97.  
  98. jmp exit
  99.  
  100.  
  101. printOk:
  102.  
  103. mov eax, 4
  104.  
  105. mov ebx, 1
  106.  
  107. mov ecx, msgOk
  108. mov edx, 14
  109.  
  110. int 0x80
  111.  
  112.  
  113. exit:
  114.  
  115. mov eax, 1
  116.  
  117. xor ebx, ebx
  118.  
  119. int 0x80
  120. ;ok sityation
  121. ;+0, 123, 007
  122. ;,,,,,,, ,,,,,,,,,
  123. ;12 22 32
  124. ;12,22,32
  125. ;12, 34 56
  126. ;+12, -12
  127. ;,-22 +22
  128.  
  129. ; not ok
  130. ;1+2
  131. ;2-
  132. ;+-21
  133. ;- 21
  134. ;+,12
  135. ; abc5665
  136. ;
  137. ;
  138. ;
  139. ;
  140.  
  141. ;
  142. ;
  143. ;
  144. ;
  145. ;
  146. ;
  147.  
  148. ;
  149. ;
  150. ;
  151. ;
  152. ;
  153.  
  154. ;
  155. ;
  156. ;
  157.  
  158. ;
  159. ;
  160.  
  161. ;
  162. ;
  163. ;
  164. ;
  165.  
  166.  
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
String is Good