12.12.2017, 19:03 [+3 UTC]
в нашей команде: 2 373 чел. | участники онлайн: 18 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
12.12.2017, 19:02

Последний вопрос:
12.12.2017, 17:45

Последний ответ:
12.12.2017, 16:34

Последняя рассылка:
12.12.2017, 18:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
14.12.2010, 11:42 »
Detsle
Спасибо, за решение и разъяснение задачи. [вопрос № 181316, ответ № 264751]
24.01.2010, 21:40 »
Чернышев Александр Николаевич
Потрясающий ответ! 1-профессионализм 2-исключительная доброжелательность 3-безупречный русский язык С удовольствием воспользуюсь Вашими советами. Трижды спасибо Вам, дорогой Владимир Алексеев! [вопрос № 176255, ответ № 258911]
18.01.2010, 12:56 »
Кохан Владимир Иванович
Супер! Все получилось. Большое спасибо. Но как же все сложно оказалось. Оценка 5+ однозначно. [вопрос № 176080, ответ № 258709]

РАЗДЕЛ [неизвестная рассылка]

[администратор рассылки: [неизвестный]]

Лучшие эксперты в этом разделе


Перейти к консультации №:
 

Консультация онлайн # 65418
Раздел: [неизвестная рассылка]
Автор вопроса: PROD
Отправлена: 03.12.2006, 21:56
Поступило ответов: 2

Здравствуйте.
Дали задание – написать на ассемблере программу для МК51 (эмулятор AVSim51).
Задача: поместить в регистр B среднее арифметическое массива 8-ми разрядных двоичных чисел в адресах 20H-2FH.

Все бы хорошо, но при сложении 16ти однобайтных чисел (если брать максимально-допустимое для них значение) может получиться 12ти разрядное число, и напрямую командой DIV AB его не разделить.
Есть идея перевести сумму из двоичной в двоично-десятичную систему, записать в DPTR (тысячи и сотни в DPH,а десятки и единицы в DPL), потом их обратно в двоичную систему и уже потом делить по частям. Вот только программка получается уж больно здоровой.
Нет ли более простого способа решить?
Заранее спасибо

Состояние: Консультация закрыта

Ответ # 129841 от Dark128

Здравствуйте, PROD!
Советую вам почитать книгу Тавернье К. PIC-микроконтроллеры. Практика применения.djvu. не удивляйтесь, но алгоритм он и в африке алгоритм(глава 4 стр. 136 Деление 16 разрядных чисел). Кстати в МПАСМ вообще нет такого оператора DIV, я думаю не составит труда адаптироваться.


Консультировал: Dark128
Дата отправки: 03.12.2006, 23:06

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 130001 от Denaon

Здравствуйте, PROD!
Диапазон 20H-2FH задает 16 чисел, для вычисления СА надо делить на 16. Эквивалент делению на 16 это сдвиг вправо 4 раза (один сдвиг деление на 2).
Либо можно поменять тетрады в байтах. От младшего взять старшую тетраду она будет младшей у результата, а от старшего байта младшую, она будет старшей у результата.


Консультировал: Denaon
Дата отправки: 04.12.2006, 18:46

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.70310 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн