17.07.2018, 03:22 [+3 UTC]
в нашей команде: 2 882 чел. | участники онлайн: 0 (рекорд: 21)

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
16.07.2018, 10:05

Последний вопрос:
16.07.2018, 07:17

Последний ответ:
13.07.2018, 17:32

Последняя рассылка:
15.07.2018, 19:45

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

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

Наша кнопка:

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

Отзывы о нас:
10.10.2009, 01:04 »
PsySex
Спасибо!! Все рекомендации принял к сведению. [вопрос № 173073, ответ № 255237]
23.02.2012, 14:21 »
lamed
Спасибо за сравнительную оценку учебников [вопрос № 185481, ответ № 270031]
06.08.2012, 08:24 »
VladimirNick
Спасибо. Буду благодарен и за подробности про создание подписок. [вопрос № 186489, ответ № 271385]

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

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

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


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

Консультация онлайн # 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.14111 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018