m_avrina
@m_avrina
Студентота.

Что не так с поиском эллементов на assembler?

Всем привет! прошу помощи в решении задачи формирования массива из 2х других(путем поиска максимального элемента) пример: результат[i] =max(массив1[i], массив2[i])
Вроде как написал все с коментами
Но оно в принципе не работает

_asm finit
		_asm {
			xor esi,esi//обнуляю
			xor ecx,ecx//обнуляю
			loopForI://цикл для прохода по массивам
			mov ax, firstArray[esi]//заношу "i"эллемент
				loopForJ//цикл для сравнение итого со всеми житыми
			mov bx, secondArray[ebp]//заношу "j"эллемент
			cmp ax,bx//сравниваю
			jg max //если больше, то пушу в стек
			cmp bx,ax// сравниваю
			jg min // если больше, житый, то пушу его
			inc ebp// нарашиваю "j"
				loop loopForJ//внутренний цикл по j
			loop loopForI// общий цикл по i

			min:
				push bx//пушу в стек
				inc esi//нарашиваю "i"
				xor ebp,ebp//"зануляю j"
				jmp loopForI//"прыгаю снова на большой цикл"
			max ://Тоже, что и в min
				push ax
				inc esi
				xor ebp, ebp
			jmp loopForI

				xor esi,esi//занулил
				poploop://цикл по стеку
			pop maxArray[esi]//попнул в массив максимальных
				loop poploop
		
	}
	__asm fwait
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ответы на вопрос 1
saboteur_kiev
@saboteur_kiev
software engineer
Ну у вас в принципе логика программы нерабочая.

Например, внутренний loopForJ, после которого в обоих случаях - если элементы не равны, вы обнуляете ebp, таким образом по второму массиву у вас вообще прохода нет.
Тут даже подсказать сложно нужно все переделать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы