Сравнение строк - Assembler (223283)

Формулировка задачи:

Здравствуйте,прошу помощи в решении задачи,хотя бы какие-то идеи. Задача: ввести с клавиатуры две строки одноразрядных чисел. Одна строка источник,вторая-строка приемник.Сравнить строки,первый совпадающий элемент строки источника записать в регистр BP.Остальные элементы строки источника обнулить.

Код к задаче: «Сравнение строк - Assembler (223283)»

textual
.model small
 
.data
str1 db 1,2,3,4,5
len1 = $-str1
str2 db 6,7,8,3,9
len2 = $-str2
 
.stack 100h
 
.code
start:
mov ax,@data
mov ds,ax
mov es,ax
 
lea si,str1
mov cx,len1
big:
push cx
 
lodsb
 
lea di,str2
mov cx,len2
min:
mov ah,byte ptr [di]
 
cmp al,ah
je same
 
inc di
loop min
 
pop cx
loop big
 
jmp exit
 
same:
add sp,2
 
cbw
mov bp,ax
 
lea si,str1
mov cx,len1
zero:
mov al,byte ptr [si]
 
cmp al,byte ptr [di]
je skip
 
mov byte ptr [si],0
 
skip:
inc si
loop zero
 
exit:
mov ah,4Ch
mov al,00h
int 21h
end start

15   голосов, оценка 3.800 из 5


СОХРАНИТЬ ССЫЛКУ