Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Tiesto
3 / 3 / 0
Регистрация: 20.12.2009
Сообщений: 68
1

Некорректно работает программа

01.11.2010, 19:29. Просмотров 510. Ответов 1
Метки нет (Все метки)

Добрый вечер !
мне нужно найти произведение всех нечетных элементов массива , но почему то программа с произведением не работает (в отличии от суммы , разности ..
вот код :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int k,i,s, a[10];
 for(i=0;i<10;i++)
  a[i]=StrToInt(Memo1->Lines->Strings[i]);
 k=sizeof(a)/4;
 
 asm{
 pusha
 mov edx,0
 mov eax,0
 mov ecx,k
 
 @m2:
 mov esi,dword ptr a + edx          // помещаем первый адрес
 and esi,1                       
 
 jp @m1                           //если нечетное то выполняем действие после метки , или переходим на метку
 imul eax,dword ptr a + edx  // c add работает , с imul нет , почему ?
 @m1:
 add edx,4                        // новый адрес + 4 байта
 loop @m2                         // повтор
 
 mov s,eax
 popa
 }
 
 Edit1->Text=IntToStr(s);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2010, 19:29
Ответы с готовыми решениями:

Некорректно работает программа (мышь + вывод на дисплей)
Здравствуйте господа! У меня проблема с программой, очень нужна помощь . Программа должна...

Программа некорректно выводит увеличенное на ед первоначальное число и завершается
Пользователь вводит с клавиатуры начальное и конечное значения диапазона десятичных беззнаковых...

Некорректно работает компилятор
Есть программа, которая вычисляет значение (1+c-2a^2)/2b^4. Если ввожу большие числа (20 1 999),...

Почему программа некорректно завершается?
Задачей было написать резидентную программу для DOS, которая проигрывает ноты из массива (1сек на...

Программа работает в консоли xp, но не работает в dosbox в 7ке
Добрый день, проблему описал в заголовке, код: .286 DSEG SEGMENT STR_ALRLOADED...

1
alexcoder
2012 / 721 / 150
Регистрация: 03.06.2009
Сообщений: 4,512
Завершенные тесты: 1
01.11.2010, 20:55 2
Лучше сделать так:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 pusha
 mov edi,0
 mov eax,1
 mov ecx,k
 
 @m2:
 mov esi,dword ptr a + edi          // помещаем первый адрес
 and esi,1                       
 
 jp @m1                           //если нечетное то выполняем действие после метки , или переходим на метку
 imul eax,dword ptr a + edi  // c add работает , с imul нет , почему ?
 @m1:
 add edi,4                        // новый адрес + 4 байта
 loop @m2                         // повтор
 
 mov s,eax
 popa
При произведении нужно в eax заносить 1, иначе при умножении любого числа на 0 будет 0
mov eax,1
и edx лучше не использовать, поскольку imul его изменяет
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2010, 20:55

Некорректно работает программа на С/С++
Программа написанная на С++ должна вычислять факториал числа а в итоге не делает ничего кроме как...

Программа работает некорректно
Помогите исправить ошибку. плиззз... Программа в гостевом каталоге не выдает ошибки.... Это как то...

Некорректно работает программа
Есть программа с использованием множеств. Задание: напечатайте все целые числа, лежащие в диапазоне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru