169 похожих чатов

INCLUDE Irvine32.inc .data strInput

BYTE "Hom chell",0
vowels BYTE "aeiouAEIOU",0
count DWORD ?

.code
main PROC
mov esi, OFFSET strInput ; Указывает esi на начало строки
xor ebx, ebx ; Обнуляет счетчик слов
xor ecx, ecx ; Обнуляет счетчик гласных

checkNextChar:
mov al, BYTE PTR [esi] ; Загружает байт из памяти
cmp al, 0 ; Проверяет, достигнут ли конец строки
je done ; Если да, завершает выполнение

cmp al, ' ' ; Сравнивает с пробелом
je spaceFound ; Если текущий символ - пробел, переходит к обработке пробела

mov edx, OFFSET vowels ; Указывает edx на начало гласных
mov ecx, 5 ; Загружает количество гласных

checkVowels:
mov ah, BYTE PTR [edx] ; Загружает байт из памяти
cmp al, ah ; Сравнивает текущий символ с гласной
je vowelFound ; Если символы совпадают, переходит к обработке гласной
inc edx ; Перемещается к следующей гласной
loop checkVowels ; Переходит к проверке следующей гласной

inc esi ; Перемещается к следующему символу
jmp checkNextChar ; Переходит к следующему символу

spaceFound:
test ecx, ecx ; Проверяет, содержится ли гласная буква в слове
jnz incrementCount ; Если да, увеличивает счетчик слов
xor ecx, ecx ; Иначе сбрасывает счетчик гласных
jmp processSpace ; Обрабатывает следующее слово

vowelFound:
inc ecx ; Увеличивает счетчик гласных
inc esi ; Перемещается к следующему символу
jmp checkNextChar ; Переходит к следующему символу

incrementCount:
inc ebx ; Увеличивает счетчик слов
xor ecx, ecx ; Сбрасывает счетчик гласных

processSpace:
inc esi ; Переходит к следующему символу после пробела
jmp checkNextChar ; Переходит к следующему символу

done:
mov count, ebx ; Сохраняет результат в count
call DumpRegs ; Выводит содержимое регистров
exit

main ENDP
END main
Не работает код, что не так?
По заданию должно вывести кол-во слов, имеющих гласную букву посередине слова, у меня в итоге в ebx 0, хотя слова 2 с гласной в центре, помогите, что не так.

2 ответов

38 просмотров

Узнаю почерк гпт

Florson-In Автор вопроса
Dudiks
Узнаю почерк гпт

Чего ты познаешь?

Похожие вопросы

Обсуждают сегодня

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
DS
8
Карта сайта