Другие языки программирования и технологии

Очень нужна помощь....Асемблер(tasm)

Разработать программу, которая вводит с клавиатуры две строки и сообщает содержится ли одна в другой и сколько раз,учитывать позиции.
_data segment
prompt1 db 'Введите 1 строку: ',13,10,'$'
prompt2 db 13,10,'Введите 2 строку: '
crlf db 13,10,'$'
txtno db 13,10,'Не '
txtyes db 'содержится $'
buf1 db 255
len1 db ?
str1 db 255 dup (?)
buf2 db 255
len2 db ?
str2 db 255 dup (?)
counter db ?
_data ends

_code segment
assume cs:_code,ds:_data,ss:_stack
start: mov ax,_data
mov ds,ax
mov es,ax
mov ah,9
lea dx,prompt1
int 21h
mov ah,10
lea dx,buf1
int 21h
mov ah,9
lea dx,prompt2
int 21h
mov ah,10
lea dx,buf2
int 21h
mov cl,len1
sub cl,len2
jb No
inc cl
xor ch,ch
mov counter,ch
lea di,str1
m1: push cx
push di
lea si,str2
mov cl,len2
xor ch,ch
repe cmpsb
jne m2
inc byte ptr [counter]
m2: pop di
inc di
pop cx
loop m1
cmp byte ptr [counter],0
jne Yes
No: lea dx,txtno
mov ah,9
int 21h
jmp quit
Yes: lea dx,crlf
mov ah,9
int 21h
lea dx,txtyes
int 21h
mov al,counter
xor ah,ah
mov bx,300Ah
div bl
add bh,ah
xor ah,ah
div bl
mov dx,3030h
add dx,ax
mov ah,2
int 21h
mov dl,dh
int 21h
mov dl,bh
int 21h
quit: mov ah,8
int 21h
mov ax,4C00h
int 21h
_code ends
_stack segment
dw 256 dup (?)
_stack ends
end start

P.S. Программа находит количество всех вхождений подстроки в первую строку.
Например, в строке "ASDAAAAAERTY" подстрока "AA" содержится 4 раза.
Alex Lagutin
Alex Lagutin
51 590
Лучший ответ