Программа, которая проверяет, одинаково ли присутствуют два символа в строке.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____string ___db "aabcdeef$"
- ____msg_true _db "True$"
- ____msg_false db "False$"
- data ends
- code segment public
- ____assume ds:data, cs:code
- ____main proc
- ________mov ____ax, seg data
- ________mov ____ds, ax
- ________mov ____bl, 'e'
- ________mov ____bh, 'a'
- ________lea ____si, ds:[string]
- ________call ___CheckString
- ________jne ____NotEqual
- ________lea ____dx, ds:[msg_true]
- ________jmp ____Done
- ____NotEqual:
- ________lea ____dx, ds:[msg_false]
- ____Done:
- ________mov ____ah, 09h
- ________int ____21h
- ________mov ____ax, 4C00h
- ________int ____21h
- ____main endp
- ____CheckString proc
- ________push ___ax
- ________push ___dx
- ________push ___si
- ________xor ____dx, dx
- ____MainLoop:
- ________lodsb
- ________cmp ____al, 24h
- ________je _____Finish
- ____TestBH:
- ________cmp ____al, bh
- ________jne ____TestBL
- ________inc ____dh
- ____TestBL:
- ________cmp ____al, bl
- ________jne ____MainLoop
- ________inc ____dl
- ________jmp ____MainLoop
- ____Finish:
- ________cmp ____dh, dl
- ________pop ____si
- ________pop ____dx
- ________pop ____ax
- ________ret
- ____CheckString endp
- code ends
- end main