;Программа сравнивает две строки, если строки равны, выводит об этом сообщение. Также;вычисляет количество символов в строке text1, результат заносит в регистр EDX
.486
.model flat, stdcall
option casemap:none
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\windows.inc
include \masm32\include\debug.inc
includelib \masm32\lib\debug.lib
.data
titel db "Равны ли ваши строки?",0
text1 db "It is example of simple programm on masm32",0
text2 db "It is example of simple programm on masm32",0
samestr db "Строки идентичны!",0
notsame db "Строки не идентичны",0
.code
start:
CLD
MOV AL,0 ;индикатор конца строки
xor edx,edx
LEA EDI,text1
MOV ECX,0ffffh
REPNE SCASB;здесь поиск
mov EDX,0ffffh
sub EDX,ECX ;EDX-количество символов в строке
mov ECX,EDX
lea edi,text1
lea esi,text2
repe cmpsb
jne no_same
invoke MessageBox, NULL, ADDR samestr, ADDR titel, MB_OK or MB_ICONINFORMATION
jmp _M
no_same: invoke MessageBox, NULL, ADDR notsame, ADDR titel, MB_OK or MB_ICONINFORMATION
_M: invoke ExitProcess, NULL
end start