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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 18:39   #1
Mr.BL@CK
Пользователь
 
Регистрация: 17.11.2010
Сообщений: 27
По умолчанию Перемещение четных/нечетных элементов в разные массивы.

Постигаю азы ассемблера,и застопорился на вот такой работе.
Сделал почти все,но не знаю как обменять.

Даны два целочисленных массива X=(x1,x2,...,xn) и Y=(y1,y2,...,ym).
Пусть в массиве Х имеется k1 четных элементов, а в массиве y - k2 нечетных элементов.
Обменять местами k=min(k1,k2) (тут имеется ввиду,что например,в Х - 3 нечетных ,а в Y - 4 четных.Менять нужно 3 элемента,ведь как можно тут обменять 4?Никак. ) четных элементов массива Х с нечетными элементами массива Y (впорядке их следования в массивах Х и Y).

Вот мои наработачки

Код:
sseg segment stack 'stack'
     db        64 dup (?)
sseg ends
;
data segment
blockinput      label     byte
        A       dw        -5,6,2,1,4,8
		B       dw        -1,3,7,-2,6
        k1		dw        ?
		k2      dw        ?
		k       dw        ?
		X       dw        6 dup (?)
		y       dw        5 dup (?)
        n       dw        6
     
         
data ends
;
code segment
start   proc    far
assume  ss:sseg,ds:data,cs:code
        push    ds
        xor     ax,ax
        push    ax
        mov     ax,data
        mov     ds,ax

		
 
        Lea Di,A
		mov Cx,n
		mov k1,0
		C1:
		mov Ax,[Di]
		test Ax,1
		JnE M1
		inc k1
		M1:
		Add Di,2
		Loop C1
		
		 
		
		Lea Di,B
		mov Cx,n
		mov k2,0
		C2:
		mov Ax,[Di]
		test Ax,1
		JE M2
		Inc k2
		M2:
		Add Di,2
		Loop C2   ;проверка массива Y
		
		MOV Ax,k1   ; количество четных
		Mov Bx,k2   ; количество нечетных
		
		cmp Bx,Ax   ; сравнение
		JL M3
		mov k,Ax
		JMP M4
		M3:
		mov k,Bx
		M4:
		mov k ; занесение min значения из обоих массивов
А вот как сделать обмен - вроде придумал - а именно - использовать доп. ячейку,и идти по массиву..и если тот,что нам нужно - перемещать его..и уменьшать постепенно К,пока оно не станет = 0.
Но как это написать - не могу придумать.Может кто поможет пожалуйста?
Mr.BL@CK вне форума Ответить с цитированием
Старый 07.07.2011, 19:49   #2
Mr.BL@CK
Пользователь
 
Регистрация: 17.11.2010
Сообщений: 27
По умолчанию

Уже додумался и сделал
Можно закрыть тему
Mr.BL@CK вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перестановка четных и нечетных столбцов матрицы Lowjedy Помощь студентам 1 10.05.2011 18:12
Сумма четных столбцов (в нечетных - текст) VictorM Microsoft Office Excel 6 23.10.2010 00:08
Вывод Четных И нечетных (Более Сложная) darter96 Помощь студентам 4 09.03.2010 21:07
Перестановка элементов четных и нечетных строк Юлия19 Помощь студентам 3 14.06.2009 18:33