0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 6
|
||||||
1 | ||||||
TASM Калькулятор, который выполняет 4 простейших арифметических операций над двумя числами со знаком03.04.2017, 20:42. Показов 7869. Ответов 13
Метки нет (Все метки)
Всем доброго времени суток. Такой вопрос: есть калькулятор, который выполняет 4 простейших арифметических операций с двумя числами. Задача заключается в том чтобы его немного модифицировать и упростить согласно тз: написать калькулятор, выполняющий над двумя знаковыми числами размером в слово следующие операции: нахождение максимального, минимального и среднего арифметического значений (все отдельно, можно через процедуры) ну и вывод их на экран соответственно.
Заранее спасибо!
0
|
03.04.2017, 20:42 | |
Ответы с готовыми решениями:
13
Написать функцию которая выполняет над нулевыми действительными числами одну из арифметических операций Выполнение арифметических операций над числами Реализация арифметических операций над вещественными числами Выполнение базовых арифметических операций над числами |
Модератор
|
||||||
03.04.2017, 22:21 | 2 | |||||
Для работы со знаковыми - слишком много переделывать. Я бы выбросил этот код и вставил процедуры из закреплённой темы Ввод и вывод чисел в различных системах счисления.
0
|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 6
|
|
04.04.2017, 07:20 [ТС] | 3 |
Добавлено через 1 час 46 минут
ФедосеевПавел Ну, согласен, этот код достаточно громоздкий. А как можно переделать по-проще? Нашёл по ссылке только вывод знакового числа, он норм, а вот ввод какой-то большой прям. По-идее процедуры можно взять те, которые Вы оставили (для нахождения максимального, минимального и среднего).
0
|
Модератор
|
||||||
04.04.2017, 09:44 | 4 | |||||
А какая разница в размере - код-то уже есть, заново его делать не требуется.
Тем более, в закреплённой теме два варианта - один чуть проще, другой чуть сложнее. Основная разница в обработке ситуации ввода числа +32768 и в сохранении контекста (регистров). Можно сократить сохранение и восстановление регистров, заменив несколько команд на pusha и popa, но после слова .code придётся в новой строке добавить директиву .386 .Просто не все студенты знают о такой возможности и чтобы было меньше вопросов новые команды не использовались. Добавлено через 1 час 57 минут Так будет со знаковыми числами
0
|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 6
|
|
04.04.2017, 22:42 [ТС] | 5 |
ФедосеевПавел, попробовал запустить через dosbox - выдаёт вот это, всё выводится с мусором
0
|
Модератор
|
|
04.04.2017, 22:57 | 6 |
Не знаю.
Делаю com файл. Запускаю. Вижу. Всё.
0
|
Модератор
|
|
06.04.2017, 23:14 | 8 |
Я намекнул ТС, что запускаю com программу. Ожидал какой-нибудь реакции. Но ТС пропал.
0
|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 6
|
|
11.04.2017, 09:47 [ТС] | 9 |
ФедосеевПавел, создал com, всё работает, огромное спасибо! Но есть пару проблем: экран не всегда очищается, возможно, в коде что-то упущена (может вызов процедуры "затирания" экрана; в некоторых местах нет комментариев, не могу понять как это работает и для чего (особенно где ввод двух чисел). Если не трудно - подсобите, пожалуйста
0
|
Модератор
|
|
12.04.2017, 00:23 | 10 |
Я лишь подогнал программу под текущую задачу, а не переделывал её сколько-нибудь кардинально. Поэтому ошибка просто осталась от автора.
Чтобы мне не гадать, приведите тестовый набор действий, где гарантированно будет воспроизведена ошибка.
0
|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 6
|
|
12.04.2017, 09:17 [ТС] | 11 |
ФедосеевПавел, ФедосеевПавел, с затиранием я думаю разберусь, там просто не везде процедура вызывается скорее всего. А вот с комментами сложнее: в процедуре EnterAB вообще не пойму что да как
0
|
Модератор
|
||||||
13.04.2017, 00:27 | 12 | |||||
;ввод двух чисел для дальнейших вычислений
;на входе: ; - ;на выходе: ;ax - число A ;bx - число B
Добавлено через 49 секунд -------------------- Всё. Я не верю, что вы учитесь, а сдать сможете и так.
0
|
0 / 0 / 0
Регистрация: 03.04.2017
Сообщений: 6
|
|
13.04.2017, 05:33 [ТС] | 13 |
ФедосеевПавел, Спасибо! Я учусь, просто чувствую что асм - не моё, не тянет, поэтому не вливаюсь в него с головой (больше интересны языки высокого уровня), а сдавать курсач нужно. Плюс ещё учиться довольно сложно, так как дают много материала и заданий на короткий срок времени.
-------------------------------------- Доброго времени суток. Извиняюсь за беспокойство, хотел ещё кое-что спросить по коду. Когда я вычисляю максимальное или минимальное значение, при отрицательном b у меня не срабатывает очистка экрана, так же и в некоторых других случаях (в том числе и с нахождением среднего арифметического). Иногда, если нажать не ту клавишу, что нужно, программа или зависает или вылетает. Компилирую через obj как парень советовал, так как x64. Помогите, пожалуйста. Спасибо.
0
|
Модератор
|
||||||
19.04.2017, 10:48 | 14 | |||||
Ну, что вам сказать? Не жмите что попало. Это учебная программа с минимальной обработкой ошибок. Хотите полную защиту - никто не запрещает мечтать и реализовывать.
Не по теме: За 2 недели многое можно успеть. Я в школе изучил BASIC за 7 дней - это был первое знакомство с компьютерами, далее в течение следующих 2-х недель освоил ещё два диалекта на других компьютерах. Ассемблеры для нескольких процессоров учил в ВУЗе совсем без компьютеров, только по книгам. На x86 ушло около месяца. Учась в ВУЗе ещё и работал и шабашил и по гулькам гулял и пьяным валялся и на моря ездил. Времени хватало. Что-то исправил, и на этом мой интерес к подобным исправлениям угасает.
0
|
19.04.2017, 10:48 | |
19.04.2017, 10:48 | |
Помогаю со студенческими работами здесь
14
Определить процедуры вычисления арифметических операций над комплексными числами Определить процедуры работы арифметических операций над комплексными числами Функции для выполнения арифметических операций над комплексными числами Определить функции выполнения арифметических операций над комплексными числами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |