Abatoor

Untitled

May 11th, 2022
1,257
1
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.23 KB | None | 1 0
  1. macro putc
  2.     1 swap 1 swap 1 4 syscall
  3.    
  4.     mem 100000 + 10 mPush
  5.     1 1 mem 100000 + 1 4 syscall
  6. macroEnd
  7. macro endl
  8.     mem 100000 + 10 mPush
  9.     1 1 mem 100000 + 1 4 syscall
  10. macroEnd
  11. macro take
  12.     mem + mLoad
  13. macroEnd
  14. macro put
  15.     swap mem + swap mPush
  16. macroEnd
  17. macro =+
  18.     dup take 1 + put
  19. macroEnd
  20. macro =-
  21.     dup take 1 - put
  22. macroEnd
  23. macro strlen
  24.     mem 0 mPush
  25.     0 while dup 0 == :
  26.         over
  27.         mem mLoad
  28.         swap over
  29.         + mLoad
  30.        
  31.         if 0 !=
  32.             : 1 +
  33.         else
  34.             : swap 1 + swap
  35.         end
  36.  
  37.         mem swap mPush
  38.     end drop
  39.     drop
  40.     mem mLoad
  41. macroEnd
  42. macro puts
  43.     1 1 2 overm dup strlen 4 syscall endl
  44.     drop
  45. macroEnd
  46.  
  47.  
  48. macro StoreStrPointer
  49.     64000 swap put
  50.     64000 take 1 + while dup 64000 take 9 + < :
  51.         dup mem + 2 overm 100 % mPush
  52.         swap 100 //
  53.         swap
  54.         1 +
  55.     end drop
  56.     1 while dup 9 < :
  57.         dup mem + mLoad drop
  58.         1 +
  59.     end drop
  60. macroEnd
  61. "hello" 100 StoreStrPointer
  62.  
  63. macro loadStrPointer
  64.     mem 108 + mLoad + 100 *
  65.     mem 107 + mLoad + 100 *
  66.     mem 106 + mLoad + 100 *
  67.     mem 105 + mLoad + 100 *
  68.     mem 104 + mLoad + 100 *
  69.     mem 103 + mLoad + 100 *
  70.     mem 102 + mLoad + 100 *
  71.     mem 101 + mLoad +
  72.     10 cDebug 10 cDebug
  73. macroEnd
  74.  
  75.  
  76. macro printStrPointer
  77.     mem 108 + mLoad + 100 *
  78.     mem 107 + mLoad + 100 *
  79.     mem 106 + mLoad + 100 *
  80.     mem 105 + mLoad + 100 *
  81.     mem 104 + mLoad + 100 *
  82.     mem 103 + mLoad + 100 *
  83.     mem 102 + mLoad + 100 *
  84.     mem 101 + mLoad +
  85.     10 cDebug dup iDebug 10 cDebug puts
  86. macroEnd
  87. loadStrPointer
  88.  
  89. macro IsCharEqual
  90.     over over mLoad swap mLoad ==
  91. macroEnd
  92.  
  93. macro ContainsChar
  94.     mLoad 11 swap put
  95.     dup strlen 12 swap put
  96.     while 12 take 0 > :
  97.         if dup mLoad 11 take == :
  98.             1 iDebug 10 cDebug
  99.         end
  100.         1 +
  101.         12 =-
  102.     end
  103. macroEnd
  104.  
  105. "fasdueqhfaw" "q" ContainsChar
  106.  
  107. macro CountChar
  108.     mLoad 11 swap put
  109.     dup strlen 12 swap put
  110.     13 0 put
  111.     while 12 take 0 > :
  112.         if dup mLoad 11 take == :
  113.             13 =+
  114.         end
  115.         1 +
  116.         12 =-
  117.     end
  118.     13 take
  119. macroEnd
  120.  
  121. "ashduhifhiush" "h" CountChar iDebug 10 cDebug
Advertisement
Add Comment
Please, Sign In to add comment