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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.06.2009, 21:11   #1
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
Восклицание работа со строками

Зі строк ‘ABCDE’ та ‘12345’ скласти строку:

‘E1,D2, C3,B4, A5 ’


скажите плз почему не работает... что не так ?

Код:
model	small
stack	100h
.data
	str1	db	'12345'
	str2	db	'ABCDE'
	str3	db	15 dup(?)
.code
	mov	ax,	@data
	mov	ds,	ax
	
	lea	si,	str1
	lea	bx,     str2+4
	lea	di,	str3
	
	mov cx, 5

	lable:
		mov	ax,bx   
		stosb
		dec	bx
		inc	di

		mov	ax,si   
		stosb
		inc	si
		inc	di

		mov	ax,2CH   ; 2CH     ;запятая
		stosb 	
		inc	di
	
		loop lable
	
		
	mov	ah, 4ch
	int	21h
end
buba3230 вне форума Ответить с цитированием
Старый 02.06.2009, 21:50   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

А обязательно на цепочечных инструкциях?
По моему, гораздо проще будет вот так сделать:

Код:
model	small
stack	100h
.data
	str1	db	'12345'
	str2	db	'ABCDE'
	str3	db	16 dup(?)
.code
	mov	ax,@data
	mov	ds,ax
	
	lea	si,	str1
	lea	bx,     str2+4
	lea	di,	str3
	mov cx, 5

	lable:
	mov	ax,[bx]
	mov	[di], ax
	inc	di
	mov	ax,[si]
	mov	[di], ax	
	inc	di
	mov	[di], ','
	inc	di
	dec	bx
	inc	si
	loop lable

	mov	[di-1], '$'

	mov ah, 09h
	mov dx, offset str3
	int 21h        ; Вывод результата
		
	mov	ah, 4ch
	int	21h
end
Ну а в вашем варианте надо:
1. настроить регистр es на секцию данных
2. убрать инкремент si, ибо stosb сам его будет уаеличивать
3. сбросить флаг DF перед циклом
4. ну и адресоваться к строкам правильно (к примеру mov al,[bx] - это поместить в регистр al значение, взятое из памяти по адресу, указанному в bx).
Код:
model	small
stack	100h
.data
	str1	db	'12345'
	str2	db	'ABCDE'
	str3	db	16 dup('$')
.code
	mov	ax, @data
	mov	ds, ax
	mov	es, ax
	
	lea	si,	str1
	lea	bx,     str2+4
	lea	di,	str3
	
	mov cx, 5
	cld
	lable:
	mov	al,[bx]
	stosb
	dec	bx
	mov	al,[si]   
	stosb
	inc	si
	mov	al,','   ; 2CH     ;запятая
	stosb 	
	loop lable
	
	mov ah, 09h               
	mov dx, offset str3
	int 21h        ; Вывод результата
		
	mov	ah, 4ch
	int	21h
end
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru

Последний раз редактировалось Ulex; 02.06.2009 в 22:13.
Ulex вне форума Ответить с цитированием
Старый 02.06.2009, 22:09   #3
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию

огромнейшее спасибо!!!! но тема лабораторной работы цепочные инструкции )))) нада обязательно так сделать =(
buba3230 вне форума Ответить с цитированием
Старый 02.06.2009, 22:09   #4
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию

если мош то скажи че оно тада не работало ?
buba3230 вне форума Ответить с цитированием
Старый 02.06.2009, 22:14   #5
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Пардон, я выше отписался.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 02.06.2009, 22:18   #6
buba3230
Пользователь
 
Регистрация: 26.05.2009
Сообщений: 22
По умолчанию

огромное спасибо!!!!! если можеш то посмотри тему

сделать бегущую строку диодов, используя PIC16F877
buba3230 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками в С++ Sien Помощь студентам 3 09.01.2009 20:02
Работа с строками Technolog Microsoft Office Excel 2 17.12.2008 09:58
Работа со строками Nividimka Помощь студентам 11 03.03.2007 15:58