Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 100h
- use16
- EntryPoint:
- push arr1
- push arr2
- push length
- call Checking
- mov AH, 02h
- add DX, '0'
- int 21h
- mov AH, 08h
- int 21h
- ret
- Checking:
- push BP
- mov BP, SP
- mov SI, [BP + 8]
- mov BX, [BP + 6]
- mov CX, [BP + 4]
- mov DI, 0
- sub SP, 2
- mov word[BP - 2], CX
- mov AL, byte[SI]
- Searching:
- mov DX, 0
- cmp AL, byte[BX + DI]
- jne Next
- push SI
- push BX
- push word[BP - 2]
- push DI
- call IsShift
- cmp DX, 1
- je YES
- Next:
- inc DI
- jmp Res0
- YES:
- mov DX, 1
- jmp End1
- Res0:
- loop Searching
- End1:
- add SP, 2
- pop BP
- ret 6
- IsShift:
- push BP
- mov BP, SP
- pusha
- mov DI, [BP + 4]
- mov CX, [BP + 6]
- mov BX, [BP + 8]
- mov SI, [BP + 10]
- mov BP, SP
- sub SP, 2
- mov [BP - 2], CX
- dec CX
- inc SI
- inc DI
- LUP:
- mov DL, byte[SI]
- cmp DL, byte[BX + DI]
- jne EndLoop
- inc SI
- inc DI
- cmp DI, [BP - 2]
- jb ResumeLoop
- sub DI, [BP - 2]
- jmp ResumeLoop
- EndLoop:
- add SP, 2
- popa
- pop BP
- mov DX, 0
- jmp Resume
- ResumeLoop:
- loop LUP
- add SP, 2
- popa
- pop BP
- mov DX, 1
- Resume:
- ret 8
- arr1 db 1, 2, 3, 4, 5, 6
- arr2 db 6, 1, 2, 3, 4, 5
- length = $ - arr2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement