.model small ; модель пямяти для программы типа EXE
.286 ; разрешить использовать команда 80286
.stack 200h ; сегмент стека
.data ; сегмент данных
mR_Yes db 'Yes',10,13,'$' ; строка вывода если условие выполняется
mR_No db 'No',10,13,'$' ; строка вывода если условие не выполняется
MyStr db 'sdfdgawfekldjklnss' ; заданная строка
SizeS=$-MyStr ; длина строки
mGood db 10,13,'Работа программы окончена! ',10,13,'$' ; строки с сообщениями об успешном завершении программы
.code ; сегмент кода
@start: ; точка входа в программу
mov ax,@data; инициализация семента данных
mov ds,ax
mov es,ax
mov cx,SizeS ; cx=длина строки
mov dx,offset mR_No ; занести в dx адрес строки с предполагаемым результатом
mov di,offset MyStr ; di=адрес заданной строки
mov al,'d' ; al='d'
repne scasb ; поиск символа в строке
je @next1 ; нашли продолжить поиск
jmp @no ; если не нашли переход
@next1:
mov al,'n' ; al='n'
repne scasb ; поиск символа в строке
je @next2 ; нашли продолжить поиск
jmp @no
@next2:
mov al,'e' ; al='e'
repne scasb ; поиск символа в строке
jne @no ; не нашли переход
mov dx,offset mR_Yes ; занести в dx адрес строки с полученным результатом
@no:
; вывод результата
mov ax,0900h ; вывести заголовок для ввода элемента массива
int 21h ; вызов DOS
@end_prog:
mov ax,0900h ; вывести заголовок для ввода элемента массива
mov dx, offset mGood ; адрес выводимой строки
int 21h ; вызов DOS
mov ax,0c07h ; ожидаем нажатие клавиши
int 21h ; вызов DOS
;выход из программы
mov ax,4c00h; функция DOS завершение программы
int 21h ; вызов DOS
end @start
cld
.model small ; модель пямяти для программы типа EXE
.286 ; разрешить использовать команда 80286
.stack 200h ; сегмент стека
.data ; сегмент данных
mR_Yes db 'Yes',10,13,'$' ; строка вывода если условие выполняется
mR_No db 'No',10,13,'$' ; строка вывода если условие не выполняется
MyStr db 'sdfdgawfekldjklnss' ; заданная строка
SizeS=$-MyStr ; длина строки
mGood db 10,13,'Работа программы окончена! ',10,13,'$' ; строки с сообщениями об успешном завершении программы
.code ; сегмент кода
@start: ; точка входа в программу
mov ax,@data; инициализация семента данных
mov ds,ax
mov es,ax
mov cx,SizeS ; cx=длина строки
mov dx,offset mR_No ; занести в dx адрес строки с предполагаемым результатом
mov di,offset MyStr ; di=адрес заданной строки
mov al,'d' ; al='d'
cld ; направление на увеличение адресов
repne scasb ; поиск символа в строке
je @next1 ; нашли продолжить поиск
jmp @no ; если не нашли переход
@next1:
mov al,'n' ; al='n'
repne scasb ; поиск символа в строке
je @next2 ; нашли продолжить поиск
jmp @no
@next2:
mov al,'e' ; al='e'
repne scasb ; поиск символа в строке
jne @no ; не нашли переход
mov dx,offset mR_Yes ; занести в dx адрес строки с полученным результатом
@no:
; вывод результата
mov ax,0900h ; вывести строку
int 21h ; вызов DOS
@end_prog:
mov ax,0900h ; вывести строку
mov dx, offset mGood ; адрес выводимой строки
int 21h ; вызов DOS
mov ax,0c07h ; ожидаем нажатие клавиши
int 21h ; вызов DOS
;выход из программы
mov ax,4c00h; функция DOS завершение программы
int 21h ; вызов DOS
end @start
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.