Advertisement
Guest User

Untitled

a guest
May 28th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. format PE CONSOLE 4.0
  2. include 'win32a.inc'
  3.  
  4. start:
  5. reader:
  6.                 mov al,byte[btactcode]
  7.                 cmp al,0x00
  8.                 jz exit
  9.                 cmp al,'>'
  10.                 jz char1
  11.                 cmp al,'<'
  12.                 jz char2
  13.                 cmp al,'+'
  14.                 jz char3
  15.                 cmp al,'-'
  16.                 jz char4
  17.                 cmp al,'.'
  18.                 jz char5
  19.                 cmp al,','
  20.                 jz char6
  21.                 cmp al,'['
  22.                 jz char7
  23.                 cmp al,']'
  24.                 jz char8
  25.                 call inc_btactcode
  26. inc_btactcode:
  27.                 mov al,byte[btactcode]
  28.                 inc al
  29.                 mov byte[btactcode],al
  30.                 ret
  31.  
  32. inc_btactcell:
  33.                 mov al,byte[btactcell]
  34.                 inc al
  35.                 mov byte[btactcell],al
  36.                 ret
  37.  
  38. dec_btactcell:
  39.                 mov al,btactcell
  40.                 dec al
  41.                 mov byte[btactcell],al
  42.                 ret
  43.  
  44. inc_btstore_btactcell:
  45.                 mov al,byte[btstore]
  46.                 mov bl,byte[btactcell]
  47.                 mov al,[al+bl]
  48.                 inc al
  49.                 mov dl,byte[btstore]
  50.                 mov byte[dl+bl],al
  51.                 ret
  52.  
  53. dec_btstore_btactcell:
  54.                 mov al,byte[btstore]
  55.                 mov bl,byte[btactcell]
  56.                 mov al,[al+bl]
  57.                 dec al
  58.                 mov dl,byte[btstore]
  59.                 mov [dl+bl],al
  60.                 ret
  61.  
  62. char1:
  63.                 call inc_btactcell
  64.                 call inc_btactcode
  65.                 inc cl
  66.                 jmp reader
  67. char2:
  68.                 call dec_btactcell
  69.                 call inc_btactcode
  70.                 inc cl
  71.                 jmp reader
  72.  
  73. char3:
  74.                 call inc_btstore_btactcell
  75.                 call inc_btactcode
  76.                 inc cl
  77.                 jmp reader
  78.  
  79. char4:
  80.                 call dec_btstore_btactcell
  81.                 call inc_btactcode
  82.                 inc cl
  83.                 jmp reader
  84.  
  85. char5:
  86.                 mov ah,09
  87.                 mov bl,byte[btactcell]
  88.                 mov dl,byte[btstore]
  89.                 mov dx,[bl+dl]
  90.                 int 21
  91.                 call inc_btactcode
  92.                 inc cl
  93.                 jmp reader
  94.  
  95. char6:
  96.                 mov ah,1h
  97.                 int 21
  98.                 mov bl,byte[btstore]
  99.                 mov dl,byte[btactcell]
  100.                 mov [bl+dl],al
  101.                 call inc_btactcode
  102.                 inc cl
  103.                 jmp reader
  104.  
  105. char7:
  106.                 mov cl,1
  107.                 push btactcode
  108.                 push btstore[btactcell]
  109.                 call inc_btactcode
  110.                 jmp cycle
  111.  
  112. char8:
  113.                 inc cl
  114.                 pop al
  115.                 mov byte[btcyclestartpos],al
  116.                 jmp cycle
  117.  
  118. cycle:
  119.                 pop al
  120.                 cmp al,0
  121.                 jz reader2
  122.                 mov al,byte[btcyclestartpos]
  123.                 mov dl,[al+cl]
  124.                 mov byte[btactcode],dl
  125.                 jmp reader
  126.  
  127. reader2:
  128.                 mov al,byte[btstore]
  129.                 mov bl,byte[btactcell]
  130.                 push byte[al+bl]
  131.                 jmp reader
  132.  
  133. exit:
  134.                 invoke ExitProcess,0
  135.  
  136. btstore db ?
  137. btcode db 43,43,43,62,43,43,91,62,43,43,43,62,43,43,93,0x00
  138. btactcell dd btstore
  139. btactcode dd btcode
  140. btcyclestartpos db 0
  141.  
  142.  
  143. data import
  144.  
  145.  library kernel32,'KERNEL32.DLL'
  146.  
  147.  import kernel32,\
  148.         ExitProcess,'ExitProcess'
  149.  
  150. end data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement