С Новым годом! Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 26.11.2016
Сообщений: 9

Задача по MCS-51, ср. арифм неупаков. BCD чисел

20.06.2018, 15:36. Показов 1672. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с решением данной задачи:
В РПД начиная с адреса 40h находится массив из 5 чисел неупакованных BCD чисел. Разместить в R4 среднее арифметическое чисел.
вот мои наработки:
Assembler
1
2
3
4
5
6
7
8
        mov R0,#40h
        mov R2,#5
        mov R4,#0
m1:     add A,@R0
        djnz R2,m1
        mov B, #5
        div AB
        mov R4,A
Считает не правильно и возможно нужно как-то по особому с неупакованными BCD работать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.06.2018, 15:36
Ответы с готовыми решениями:

Есть код, нужно ср. арифм. диапазона чисел не кратных 3, но не получается вывести ср.арифм
Не ясно как использовать sum(), len() и нужно ли вообще. С использованием sum, len к слову выдает "int не может быть повторен". ...

Задача на сложение двух bcd чисел
Народ, подскажите как исправить...у меня задача на сложение двух bcd чисел, я прогу написал, все правильно считает, вот только ответ...

Вычисление ср.арифм. в массиве,нахождение элементов>ср. арифм и присвоение их другому массиву
Вычисление ср.арифм. в массиве,нахождение элементов>ср. арифм и присвоение их другому массиву(через функцию) Ребят помогите пожалуйста ...

7
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
20.06.2018, 19:17
Во время выполнения цикла R0-то надо инкрементировать. А то ты первый элемент массива сам с собой 5 раз складываешь.
Ну и еще перед циклом аккамулятор-то обнули. А вот R4 там обнулять было незачем.
1
0 / 0 / 0
Регистрация: 26.11.2016
Сообщений: 9
20.06.2018, 20:12  [ТС]
Во время выполнения цикла R0-то надо инкрементировать. А то ты первый элемент массива сам с собой 5 раз складываешь.
Ну и еще перед циклом аккамулятор-то обнули. А вот R4 там обнулять было незачем.
согласен, неправ, а вот что делать с тем что это неупакованные BCD числа?Нужно ли их как-то по-особому складывать?
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
21.06.2018, 01:43
Если тебе надо получить на выходе тоже неупакованное двоично-десятичное число, то да, надо складывать особо.
Но ведь тебе надо другое. Тебе надо просто их сложить и получить простое двоичное число пригодное для деления на 5.
Как я понял из твоей попытки складывать, начиная с адреса 40h лежат пять чисел, каждое занимает один байт и раз оно двоично-десятичное неупакованное, то его возможные значения 0..9. Если это так, то мы просто имеем пять байт, каждое не больше 9-и. Ну так и складываем их обычным образом, а потом делим на 5. Вот тебе и среднее арифметическое.

Другое дело, что деление на 5 командой div - это деление с округлением в меньшую сторону. А если тебе надо привычное по школе арифметическое округление, то я бы с суммой обошелся так :
Assembler
1
2
3
4
add a, ACC ;умножил бы сумму на два
add a, #5 ;прибавил бы пять
mov B, #10
div ab ;поделил бы на 10
Вот тогда бы получилось среднее арифметическое по школьным правилам округления.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
21.06.2018, 10:09
Цитата Сообщение от Ethereal Посмотреть сообщение
div - это деление с округлением в меньшую сторону.
не совсем при делении в A частное в B остаток
я бы сделал так
если в B больше половины делителя, то прибавил 1 к частному, иначе нет
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
21.06.2018, 13:05
Ну так частное в A с округлением в меньшую сторону.
А половина делителя в данном случае 2.5, поэтому я и перешел к делению на 10 ибо тогда половина делителя целая
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
21.06.2018, 13:58
Цитата Сообщение от Ethereal Посмотреть сообщение
в данном случае 2.5
в данном я говорил про общий случай
в каждом конкретном случае возможно свое решение
0
 Аватар для Ethereal
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
21.06.2018, 18:31
В общем случае прибавляешь к делимому половину делителя и делишь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.06.2018, 18:31
Помогаю со студенческими работами здесь

В вещественном двумерном массиве найти среднее арифм. каждого столбца и среднее арифм. строк с четными номерами
Задана вещественная квадратная матрица n-го порядка. Найти: а) среднее арифметическое каждого столбца; б) среднее арифметическое...

Задача для микроконтроллера MCS-51 (на языке С)
Если ДД2=1, то ДСИ1=0 и ДСИ2=0; иначе, если ДД1=1 то ДСИ1=1 и ДСИ2=0, если ДД!=0,то ДСИ1=0 и ДСИ2=1ж опрос ДД2 организовать с устранением...

Найти сумму и ср. арифм. чётных чисел.
Привет. Помогите школьнику с задачкой. 9 класс. Пользователь вводит с клавиатуры целые положительные числа, разделённые нажатием ентер....

Дан файл чисел. Определите длину наибольшего интервала возрастания, и среднее арифм-е чисел этого интервала
В общем саму задачу я сделал, а вот запись в файл сделать не могу, точнее не пойму к чему что привязывать. Это код сделанной задачи без...

(MCS-51) Сравнение чисел
Подскажите, пожалуйста! Имеется два числа (назовём их T и K) которые нужно сравнить, и если T>K, то в регистр R0 Bank 0 заносится...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru