| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [Assembler] Массив чисел |
| Автор: deuterium 15.11.2008, 18:22 | ||
| Помогите пожалуйста написать вот такую прогу: 1. В ней задается массив из 10 чисел (цифр, двухзначных и трехзначных, положительных и отрицательных), например: 4, -23, 3, 276, -79, -345, 6, 44, -77, 111. 2. Прога считает сумму чисел, находящихся в интервале от -100 до 100, а также произведение всех положительных чисел. 3. Всё это выводится на экран. Вот у меня есть код для вывода числа на экран:
|
| Автор: IKM2007 17.11.2008, 21:03 | ||
| deuterium, я тоже только учу Assembler, пока что отрицательные числа не проходили, да и при больших числах результат умножения неправильно получается(если результат больше 3*10^5). Вот код, возможно поможет. Вводишь сперва количество чисел, потом вводишь элементы массива.
|
| Автор: deuterium 17.11.2008, 22:04 |
| IKM2007, Спасибо за помощь, но мне нужна прога без ввода данных с клавиатуры, а только с выводом, т.е. гораздо проще. Исходные данные, т.е. элементы массива, должны быть уже изначально вбиты в код проги. |
| Автор: IKM2007 18.11.2008, 16:43 | ||
|
| Автор: deuterium 19.11.2008, 19:09 |
| IKM2007, Спасибо, конечно. Но как-то странно твоя прога работает. Да и с отрицательными числами не справляется. |
| Автор: IKM2007 19.11.2008, 20:26 |
| deuterium, я в массив вместо написал свои числа(положительные, так как уже обьяснил, что с отрицательными числами пока не знаком), и эти числа должны быть такие, чтобы их произведение не превышало 30000. Сказал, что прога не правильная, но лучше чем ничего. |
| Автор: deuterium 21.11.2008, 11:22 |
| IKM2007, Согласен, что это лучше, чем ничего. Но эта прога мне немного не подходит. В любом случае спасибо за помощь. Желательно, чтобы прога была похожа на проги, рассмотренные тут: http://forum.vingrad.ru/forum/topic-235310.html Тем более, что ввод не нужен. Может кто-то еще поможет?! |
| Автор: Evjeny 24.11.2008, 00:45 | ||
Здесь выполнено только часть задания. Программа считает сумму в интервале [-100;100]. Результат в ax. Произведение и вывод постараюсь дописать сегодня, если будет время. |
| Автор: deuterium 24.11.2008, 20:33 |
| Evjeny, Огромное спасибо!!! Это как раз то, что мне нужно. Код для вывода у меня уже есть готовый (приведен в шапке). Нужно только его состыковать с этой прогой. Ну конечно же не помешало бы и произведение. Но большое спасибо и на этом. А возможно ли как-то сейчас просмотреть результат (пока не реализован вывод)? |
| Автор: IKM2007 25.11.2008, 05:37 | ||
Отладчиком посмотри. |
| Автор: Evjeny 26.11.2008, 01:34 | ||
Реализовано: сумма с выводом и произведение без вывода(на всякий, реализовал произведение, если все числа в массиве будут 999, вроде 36ти байт для такого числа должно хватить). Вывод произведения попробуй реализовать сам, пойдет на пользу. Произведение формируется в массивах mult и mult1. Выбирай любой из них |
| Автор: deuterium 26.11.2008, 12:42 |
| Evjeny, Большое спасибо, вывод результата работает, но как-то странно. Помимо самого числа (-122) выводится еще куча иероглифов и надпись: DOS SET BLOCK (4Ah) error, да к тому же системный динамик при этом запищал. Что это такое? Да, и как всё-таки просмотреть тот результат для произведения. Я понимаю, что с помощью отладчика (td.exe ***.exe), но что конкретно там надо сделать, чтобы увидеть окончательный результат? |
| Автор: Evjeny 27.11.2008, 23:58 |
| http://programmersforum.ru/showthread.php?t=16173 |
| Автор: deuterium 30.11.2008, 12:41 | ||
| Evjeny, Да с этой ошибкой я уже разобрался. Вот преподаватель мне уже всё исправил. Чисто для суммы получилось вот так:
Осталось доделать произведение. Дело в том, что в твоей проге много того, чего я вообще еще не учил. Например, что такое: rep movsw, clc, adc, pushf, popf? Можно как-то обойтись без этого? |
| Автор: deuterium 4.12.2008, 21:00 | ||
Ну а вот и окончательный результат, как надо было сделать. Оказалось попроще, чем здесь предлагалось. Но в любом случае всем спасибо за помощь.
|