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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2012, 23:05   #1
Berlioz
Изучающий C и ASM
Пользователь
 
Регистрация: 25.05.2012
Сообщений: 89
По умолчанию ASM в VS2010

Всех приветствую. Изучая встроенный ассемблер Visual Studio 2010, столкнулся с проблемой:
Код:
int a[] = {30, 50, 40, 6, 8, 1};
	int b[] = {25, 78, 43, 3, 0, 2};
	__asm {
		start:
			mov esi, 0h
			mov eax, dword ptr [a+esi]
			mov ebx, dword ptr [b+esi]
			add eax, ebx
			mov dword ptr [a+esi], eax
			add esi, 4h
			cmp esi, 40h
			jbe start
	}
Для первого элемента все нормально отрабатывает, однако почему-то при вводе команды jbe происходит зацикливание.
В чем может быть причина?
Berlioz вне форума Ответить с цитированием
Старый 16.08.2012, 23:47   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

потому что вы возвращаетесь к метке start, и что там вы делаете?
а именно снова обнуляете esi.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.08.2012, 08:56   #3
Berlioz
Изучающий C и ASM
Пользователь
 
Регистрация: 25.05.2012
Сообщений: 89
По умолчанию

Вот блин! Падон, не заметил
Два часа убил, пытаясь понять, в чем дело

Сейчас еще одна напасть непонятного характера:
Все это происходит в функции int main, после return 0 идет ругань, мол стек поврежден
Что это может быть? Ругается дебаггер

Последний раз редактировалось Berlioz; 17.08.2012 в 09:09.
Berlioz вне форума Ответить с цитированием
Старый 17.08.2012, 09:42   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Пусть размер инта 4 байта. Вопрос - сколько элементов массива вы здесь обрабатываете:
Код:
	            	cmp esi, 40h
			jbe start
?
p51x вне форума Ответить с цитированием
Старый 17.08.2012, 11:41   #5
Berlioz
Изучающий C и ASM
Пользователь
 
Регистрация: 25.05.2012
Сообщений: 89
По умолчанию

Спасибо! Разобрался. Действительно, ошибся с размером массива.
Berlioz вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача параметров asm-asm Maksimall89 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 22.12.2011 11:54
Ошибка VS2010 AlexZZZ2010 Общие вопросы .NET 1 22.09.2011 13:40
проблема в VS2010 Form_13 Помощь студентам 4 26.07.2011 03:26
Конвертировать VS2010 в VS2005 KuckaMAXHATKA Visual C++ 1 30.05.2011 20:37
Окна в VS2010 ? denes Общие вопросы C/C++ 0 13.11.2010 16:33