Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Лабораторная работа по "Программированию"

Автор:   •  Июнь 28, 2020  •  Лабораторная работа  •  1,243 Слов (5 Страниц)  •  3 Просмотры

Страница 1 из 5

.386P

PUBLIC LAB5

.MODEL FLAT, C

_TEXT SEGMENT

LAB5 PROC

PUSH EBP

MOV EBP, ESP

mov esi, DWORD PTR[EBP+8]; исходный текст

mov ecx, [EBP+12]

xor edx, edx

;====================================================================(считаю количество слов с одинаковой первой и последней буквой)

v1:

mov al, [esi]; кладу в al первую букву слова

mov [EBP+28], al; кладу эту же букву в переменную в си

jmp c11; перехожу в c11

c1:

mov al, [esi];

c11:

mov bl, [esi+1]; кладу в bl букву после обрабатываемой

cmp bl, ' '; сравниваю её с пробелом

je probel1; если равна перехожу в probel1

cmp bl, '.'; сравниваю её с точкой

je tochka1; если равна перехожу в tochka1

jmp prostobukva1; если не пробел и не точка, то слово не закончилось, перехожу в prostobukva1

tochka1:

mov al, [EBP+28]; кладу в al первую букву обрабатываемого слова

mov bl, [esi]; кладу в bl последнюю букву обрабатываемого слова

cmp al, bl; сравниваю их

jne konec1; если не равны, перехожу в konec1

inc edx; если равны прибавляю 1 к количеству слов с одинаковыми первой и последней буквами

jmp konec1; перехожу в konec1

probel1:

mov al, [EBP+28]; кладу в al первую букву обрабатываемого слова

mov bl, [esi]; кладу в bl последнюю букву обрабатываемого слова

inc esi; перехожу в массиве следующий символ(пробел)

cmp al, bl; сравниваю буквы

jne lastbukva1; если не равны перехожу в lastbukva1

inc edx; если равны прибавляю 1 к количеству слов с одинаковыми первой и последней буквами

jmp lastbukva1; перехожу в lastbukva1

prostobukva1:

xor al, al; обнуляю

xor bl, bl; обнуляю

inc esi; перехожу в массиве следующий символ

loop c1; лупаюсь в с1

lastbukva1:

xor al, al; обнуляю

xor bl, bl; обнуляю

inc esi; перехожу в массиве следующий символ

loop v1; лупаюсь в v1

konec1:

mov ebx, [EBP+24]; кладу количество слов с одинаковой первой и последней буквой в переменную в си

mov [ebx], edx; кладу количество слов с одинаковой первой и последней буквой в переменную в си

;===================================================================(считаю количество слов с одинаковой первой и последней буквой)

xor eax, eax

xor edx, edx

xor ebx, ebx

;========================================(переношу во второй массив слова с одинаковыми первой и последней буквой)

mov esi, DWORD PTR[EBP+8]; первый массив

mov edx, DWORD PTR[EBP+20]; третий массив

mov ecx, 0; сейчас ecx будет счетчиком букв в обрабатываемом слове

v2:

mov edi, DWORD PTR[EBP+16]; массив одного слова

mov al, [esi]; кладу в al первую букву слова из первого текста

mov [edi], al; кладу эту же букву в массив одного слова

mov [EBP+28], al; кладу эту же букву в переменную в си

inc ecx; прибавляю 1 к счетчику букв в слове

jmp c22; перехожу в c22

c2:

mov al, [esi]; кладу в al НЕ первую букву слова

mov [edi], al; кладу эту же букву в массив одного слова

inc ecx; прибавляю 1 к счетчику букв в слове

c22:

mov bl, [esi+1]; кладу в bl букву после обрабатываемой

cmp bl, ' '; сравниваю её с пробелом

je probel2; если равна перехожу в probel2

cmp bl, '.'; сравниваю её с точкой

je tochka2; если равна перехожу в tochka2

jmp prostobukva2; если не пробел и не точка, то слово не закончилось, перехожу в prostobukva2

tochka2:

mov al, [EBP+28]; кладу в al первую букву обрабатываемого слова

mov bl, [esi]; кладу в bl последнюю букву обрабатываемого слова

cmp al, bl; сравниваю их

jne konec2; если не равны, перехожу в konec2

jmp mas4; если равны перехожу в mas4

probel2:

mov al, [EBP+28]; кладу в al первую букву обрабатываемого слова

mov bl, [esi]; кладу в bl последнюю букву обрабатываемого слова

inc esi; перехожу в первом массиве на следующий символ(пробел)

cmp al, bl; сравниваю буквы

jne ttt; если не равны перехожу в ttt

jmp mas3; если равны перехожу в mas3

prostobukva2:

xor al, al; обнуляю

xor bl, bl; обнуляю

...

Скачать:   txt (13.7 Kb)   pdf (55.2 Kb)   docx (9.9 Kb)  
Продолжить читать еще 4 страниц(ы) »
Доступно только на Essays.club