Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проги.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
25 Кб
Скачать
☆

11. Колличество слов, больше самого короткого.

;--------- Search max

t4: xor ax,ax

mov si,1

mov Num,si

mov al,mas[si]

dec si

t6: add si,1

cmp al,mas[si]

jl t5

mov Num,si

mov al,mas[si]

t5: cmp bx,si

jne t6

;--------- Search min max

xor cx,cx

mov si,0

t8: inc si

cmp mas[si],al

jle t7

inc cx

t7: cmp bx,si

jne t8

mov ax,Num

mov di,[bp + 10]

mov [di],ax

mov sp,bp

pop bp

ret

Processing endp

code ends

end start

12. Количество слов после самого короткого

mov ch,0 ; старший байт = 0

mov cl,len ; количество байт (символов) для сканирования

lea di,text ; адрес строки

mov al,' ' ; искомый символ

mov dx,di ; начало самого короткого слова

mov min,cx ; длина самого короткого слова

find_space:

mov si,di ; запомнить адрес начала текущего слова

repne scasb ; сканировать пока не равно пробелу

; вычисление длины слова

mov bx,di ; указывает на следующий символ после найденного

sub bx,si ; вычесть адрес начала слова

jz no_min ; перейти если длина=0 (подряд 2 пробела)

cmp cx,0 ; если просканированна вся строка

jz end_str ; перейти на метку

dec bx ; реальная длина слова, т.к. di указывал на символ

; следующий за пробелом

jz no_min ; перейти если длина=0 (подряд 2 пробела)

end_str:

cmp bx,min ; сравнение длины слова (ВХ) с самым коротким

jle no_min ; если длина больше либо равна - то перейти

mov min,bx ; иначе сохранить длину текущего как минимальную

mov count,0

mov dx,si ; запомнить начало самого короткого слова

no_min:

push ax

mov ax,count

inc ax

mov count,ax

pop ax

cmp cx,0 ; если просканированна не вся строка

jnz find_space ; тогда перейти - продолжить сканирование

13. Підрахувати кількість слів праворуч найбольшего.

;--------- Search max

t4: xor ax,ax

mov si,1

mov Num,si

mov al,mas[si]

dec si

t6: add si,1

cmp al,mas[si]

jg t5

mov Num,si

mov al,mas[si]

t5: cmp bx,si

jne t6

;--------- Search min max

xor cx,cx

mov si,Num

t8: inc si

cmp al,mas[si]

jle t7

inc cx

t7: cmp bx,si

jne t8

mov ax,Num

mov di,[bp + 10]

mov [di],ax

mov sp,bp

pop bp

ret

Processing endp

code ends

end start