Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2008, 14:39   #1
zabava
Новичок
Джуниор
 
Регистрация: 08.09.2008
Сообщений: 1
По умолчанию задача по assembler

Помогите, пожалуйста, решить задачи
1. Найти подстроку в строке
2. Сделать из двух строк одну
zabava вне форума Ответить с цитированием
Старый 09.09.2008, 02:03   #2
Vedrus
ИСККОНный хакер
Форумчанин
 
Аватар для Vedrus
 
Регистрация: 08.11.2007
Сообщений: 195
По умолчанию О программе

1000 руб, или выкладывай свои наработки
#define QUESTION bb || !bb
Vedrus вне форума Ответить с цитированием
Старый 13.09.2008, 16:44   #3
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

1. примерно так:
в a1 - строка (заканчивается 0-символом)
в a2 - подстрока (заканчивается 0-символом)

Код:
.model	small
.stack	100h
.data
a1 db 'aabbccdd',0
a2 db 'cc',0
.code
start:
mov	ax,@data
mov	ds,ax
xor	ax,ax


	
	xor si,si
	
loop1:
	push si
	xor di,di
		
lp001:
	mov ah,a1[si]
	mov bh,a2[di]
	cmp bh,0
	je jEq
	cmp ah,0
	je jnEq
	
	cmp ah,bh
	jnz nEq
	inc si
	inc di
	jmp lp001
	
nEq:
	pop si
	inc si
	jmp loop1

jEq:	pop ax
	mov dl,al
	add dl,'0'
	mov ah,2
	int 21h
	jmp exit
	
jnEq:	pop si
	mov dl,'N'
	mov ah,2
	int 21h
exit:
	mov ah,8
	int 21h

mov	ax,4c00h
int	21h
end	start
программа выводит на экран положение подстроки в строке начиная с нуля. если подстроки в строке нет выводит "N".

Спасибо за внимание)))
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача Assembler (матрица) LeFF Помощь студентам 2 22.06.2008 13:38
Задача на Assembler-е (строки) rullzzzz Помощь студентам 1 16.06.2008 12:27