Мы в Telegram
Добавить новость
Новости сегодня

Новости от TheMoneytizer

MASM32. Работа со строками

У меня есть код, но при линковке выдает ошибки, кто поможет исправить?

.386
.model flat, stdcall
option casemap :none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
.data
prompt db "Введите строку:",0
title db "Палиндромы",0
buffer db 256 dup(0)
message db 256 dup(0)
palindrome db 256 dup(0)
space db " ",0
wordCount dd 0

.code
Winmain proc
start:
; Выводим диалоговое окно для ввода строки
invoke MessageBoxA, NULL, addr prompt, addr title, MB_OKCANCEL
cmp eax, IDCANCEL
je exit
invoke GetDlgItemTextA, eax, 0, addr buffer, 256

; Перебираем слова в строке
lea esi, buffer
mov ebx, 0
mov wordCount, 0
wordLoop:
; Находим длину текущего слова
mov edi, esi
findEndOfWord:
cmp byte ptr [edi], ' '
je endOfWord
cmp byte ptr [edi], 0
je endOfWord
inc edi
jmp findEndOfWord
endOfWord:
mov ecx, edi
sub ecx, esi

; Проверяем, является ли слово палиндромом
mov eax, esi
add edi, -1
palindromeLoop:
cmp eax, edi
jge notPalindrome
mov al, byte ptr [eax]
mov bl, byte ptr [edi]
cmp al, bl
jne notPalindrome
inc eax
dec edi
jmp palindromeLoop
palindrome:
; Если слово является палиндромом, добавляем его в строку результатов
mov eax, esi
mov ecx, edi
sub ecx, esi
mov edi, offset palindrome
copyPalindrome:
cmp eax, esi
je endOfWordLoop
mov al, byte ptr [eax]
mov byte ptr [edi], al
inc edi
inc eax
jmp copyPalindrome
endOfWordLoop:
mov byte ptr [edi], 0
invoke lstrcatA, addr message, offset palindrome
invoke lstrcatA, addr message, addr space
inc wordCount

; Переходим к следующему слову в строке
add esi, ecx
cmp byte ptr [esi], 0
je endOfLine
inc esi
jmp wordLoop

notPalindrome:
add esi, ecx
cmp byte ptr [esi], 0
je endOfLine
inc esi
jmp wordLoop

endOfLine:
; Если не найдено ни одного палиндрома, выводим соответствующее сообщение
cmp wordCount, 0
jne showMessage
invoke lstrcpyA, addr message, "Нет палиндромов в строке"
Winmain endp
End Winmain

Выдает следующие ошибки:

\masm32\include\winextra.inc(11052) : error A2026:constant expected
\masm32\include\winextra.inc(11053) : error A2026:constant expected
laba5.asm(24) : error A2008:syntax error : title
laba5.asm(24) : error A2042:statement too complex
laba5.asm(60) : error A2005:symbol redefinition : palindrome
laba5.asm(98) : error A2084:constant value too large
laba5.asm(98) : error A2114:INVOKE argument type mismatch : argument : 2
laba5.asm(26) : error A2006:undefined symbol : exit
laba5.asm(97) : error A2006:undefined symbol : showMessage

Читайте на 123ru.net


Новости 24/7 DirectAdvert - доход для вашего сайта



Частные объявления в Вашем городе, в Вашем регионе и в России



Smi24.net — ежеминутные новости с ежедневным архивом. Только у нас — все главные новости дня без политической цензуры. "123 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. Smi24.net — облегчённая версия старейшего обозревателя новостей 123ru.net. Мы не навязываем Вам своё видение, мы даём Вам срез событий дня без цензуры и без купюр. Новости, какие они есть —онлайн с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии. Smi24.net — живые новости в живом эфире! Быстрый поиск от Smi24.net — это не только возможность первым узнать, но и преимущество сообщить срочные новости мгновенно на любом языке мира и быть услышанным тут же. В любую минуту Вы можете добавить свою новость - здесь.




Новости от наших партнёров в Вашем городе

Ria.city

МИД назвал «уткой» сообщения грузинских СМИ о восстановлении дипотношений

"Москинопарк" стал новой площадкой фестиваля "Времена и эпохи"

Музей Победы провел флешмоб ко Дню России

Движение на фиолетовой ветке метро восстановлено

Музыкальные новости

Стал известен список мест для празднования Курбан-байрама в Подмосковье

Титов предположил, что у «Динамо» и «Краснодара» еще 10 лет не будет шанса на победу в РПЛ

Игорь Рыбаков купил 88 га земли на Ильинском шоссе у ГК «Галс-Девелопмент»

Выставка «Леонардо ракетного мира» открылась в Реутове

Новости России

Азербайджан назначил столицей тюркского мира талышский город Ленкорань. Талышские организации мира бьют тревогу

Движение на фиолетовой ветке метро восстановлено

Василий Анохин: Наши учителя – в числе лучших в России!

30 лет назад в Архангельске открылась первая на Северо-Западе школа «Диабет»

Экология в России и мире

«Школа вожатых» прошла в школе №7 в Реутове

LISA FM Александр Белоносов выпустил альбом «Родина Сердца: Дневник Психолога»

Как существовала платная стоматология в СССР — стране бесплатной медицины

Roberto Cavalli, коллекция Resort 2025

Спорт в России и мире

Медведев, Кафельников, Федерер, Маррей, Роддик, Агасси поздравили Синнера со статусом первой ракетки мира

Мирра Андреева может стать новой Марией Шараповой

В России заговорили о Елене Рыбакиной после смены теннисисткой гражданства

Испанец Алькарас выиграл у Зверева и стал победителем Roland Garros

Moscow.media

Вечерело...

В Шебекино подорвались на мине трое бойцов самообороны и оператор “России-24”

Bluetooth-сканер штрих-кодов SAOTRON P04 на базе CMOS-матрицы

Каршеринг BelkaCar запустил летний спецпроект «Умные путешествия»







Топ новостей на этот час

Rss.plus





СМИ24.net — правдивые новости, непрерывно 24/7 на русском языке с ежеминутным обновлением *