Программа, которая считет количество всех гласных букв в строке.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____string db "Intel 8086. Microsoft "
- ___________db "Macro Assembler"
- ____vowels db "aeiouAEIOU"
- ____output db "Number of vowels: $"
- ____result dw 0
- data ends
- code segment public
- ____assume ds:data, cs:code
- ____main proc
- ________mov ____ax, seg data
- ________mov ____ds, ax
- ________mov ____es, ax
- ________lea ____di, es:[vowels]
- ________lea ____si, ds:[string]
- ________mov ____cx, 37
- ____OuterLoop:
- ________push ___cx
- ________mov ____cx, 10
- ________lodsb
- ________push ___di
- __repnz scasb
- ________jne ____Skip
- ________inc ____result
- ____Skip:
- ________pop ____cx
- ________pop ____cx
- ________loop ___OuterLoop
- ________mov ____ah, 09h
- ________lea ____dx, ds:[output]
- ________int ____21h
- ________mov ____dx, result
- ________call ___PrintNumber
- ________mov ____ax, 4C00h
- ________int ____21h
- ____main endp
- ____PrintNumber proc
- ________mov ____ax, dx
- ________mov ____bx, 10
- ________cwd
- ________div ____bx
- ________mov ____cl, 8
- ________shl ____ax, cl
- ________xchg ___al, dl
- ________or _____ax, 3030h
- ________xchg ___ax, bx
- ________mov ____ah, 02h
- ________cmp ____bh, 30h
- ________je _____PrintOneDigit
- ________mov ____dl, bh
- ________int ____21h
- ____PrintOneDigit:
- ________mov ____dl, bl
- ________int ____21h
- ________ret
- ____PrintNumber endp
- code ends
- end main