Advertisement
r4lovets

Untitled

Jun 16th, 2019
2,305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         org 100h
  2.         use16
  3.  
  4. EntryPoint:
  5.         push    arr1
  6.         push    arr2
  7.         push    length
  8.         call    Checking
  9.         mov     AH, 02h
  10.         add     DX, '0'
  11.         int     21h
  12.         mov     AH, 08h
  13.         int     21h
  14.         ret
  15.  
  16.  
  17. Checking:
  18.         push    BP
  19.         mov     BP, SP
  20.         mov     SI, [BP + 8]
  21.         mov     BX, [BP + 6]
  22.         mov     CX, [BP + 4]
  23.         mov     DI, 0
  24.         sub     SP, 2
  25.         mov     word[BP - 2], CX
  26.         mov     AL, byte[SI]
  27. Searching:
  28.         mov     DX, 0
  29.         cmp     AL, byte[BX + DI]
  30.         jne     Next
  31.         push    SI
  32.         push    BX
  33.         push    word[BP - 2]
  34.         push    DI
  35.         call    IsShift
  36.         cmp     DX, 1
  37.         je      YES
  38. Next:
  39.         inc     DI
  40.         jmp     Res0
  41. YES:
  42.         mov     DX, 1
  43.         jmp     End1
  44. Res0:
  45.         loop    Searching
  46. End1:
  47.         add     SP, 2
  48.         pop     BP
  49.         ret     6
  50.  
  51.  
  52. IsShift:
  53.         push    BP
  54.         mov     BP, SP
  55.         pusha
  56.         mov     DI, [BP + 4]
  57.         mov     CX, [BP + 6]
  58.         mov     BX, [BP + 8]
  59.         mov     SI, [BP + 10]
  60.         mov     BP, SP
  61.         sub     SP, 2
  62.         mov     [BP - 2], CX
  63.         dec     CX
  64.         inc     SI
  65.         inc     DI
  66. LUP:
  67.         mov     DL, byte[SI]
  68.         cmp     DL, byte[BX + DI]
  69.         jne     EndLoop
  70.         inc     SI
  71.         inc     DI
  72.         cmp     DI, [BP - 2]
  73.         jb      ResumeLoop
  74.         sub     DI, [BP - 2]
  75.         jmp     ResumeLoop
  76. EndLoop:
  77.         add     SP, 2
  78.         popa
  79.         pop     BP
  80.         mov     DX, 0
  81.         jmp     Resume
  82. ResumeLoop:
  83.         loop    LUP
  84.         add     SP, 2
  85.         popa
  86.         pop     BP
  87.         mov     DX, 1
  88. Resume:
  89.         ret     8
  90.  
  91.  
  92. arr1    db      1, 2, 3, 4, 5, 6
  93. arr2    db      6, 1, 2, 3, 4, 5
  94. length = $ - arr2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement