Программа которая подсчитывает количество слов в заданной строке.
- title Автор: Довгополов Евгений Сергеевич
- .model small
- .stack 100h
- data segment public
- ____string db _"I've got many friends in "
- ___________db _"China$"
- ____strlen equ ($-string)
- ____output db _"Number of words: $"
- ____count _dw _0
- data ends
- code segment public
- ____assume ds:data, cs:code
- ____main proc
- ________mov ____ax, seg data
- ________mov ____ds, ax
- ________xor_____si, si
- ________mov ____cx, strlen
- ________lea ____bx, ds:[string]
- ____MainLoop:
- ________cmp ____byte ptr[bx+si-1], 20h
- ________jne ____Skip
- ________inc ____count
- ____Skip:
- ________inc ____si
- ________loop ___MainLoop
- ________inc ____count
- ________mov ____ah, 09h
- ________lea ____dx, ds:[output]
- ________int ____21h
- ________mov ____dx, count
- ________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