19.10.2018, 06:51 [+3 UTC]
в нашей команде: 3 018 чел. | участники онлайн: 1 (рекорд: 21)

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

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

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

:: правила

:: новости

:: участники

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

:: форум

:: блоги

:: поиск

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

:: наш журнал

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

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

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

:: поддержка

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

Версия системы:
7.51 (29.09.2018)

Общие новости:
24.09.2018, 16:49

Форум:
18.10.2018, 12:19

Последний вопрос:
19.10.2018, 05:21

Последний ответ:
19.10.2018, 06:08

Последняя рассылка:
19.10.2018, 01:45

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

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

Наша кнопка:

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

Отзывы о нас:
02.03.2010, 12:47 »
vera-nika
большое спасибо, вы мне очень помогли, сама я в этом не сильно разбираюсь [вопрос № 176985, ответ № 259824]
16.04.2010, 00:40 »
Chempion
Весьма признателен за быстрый и точный ответ! Кажется,все нюансы с картриджем выяснили.Может,кто-то из Экспертов еще что-то добавит,лишняя информация никогда не помешает.Всего наилучшего! С ув. Николай. [вопрос № 177861, ответ № 260834]

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

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

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


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

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

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