|
|
|
luberppl |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 11.6.2014 Репутация: нет Всего: нет |
Записать в регистр DPTR сумму наибольших чисел массивов 20Н-27Н и 28Н-2FH двоично-десятичных чисел. Помогите разобрать пошагово что делать.
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
1) Я так понял, что есть два массива, в каждом хранятся однобайтные двоично-десятичные числа.
2) И надо в каждом из двух массивов найти наибольшэе число. По счастью, сравнение двоично-десятичных чисел в точности соответствует сравнению обычных беззнаковых чисел. Так что пройти массив, записывая в какой-то регистр максимум. Массива два, так что можно просто взять два разных регистра. 3) Дальшэ зависит от того, нужно нам в DPTR двоично-десятичное или обычное двоичное число. Если двоично-десятичное -- то банально, складываем как обычно 16-битовые числа, только после каждого сложэния (их два будет -- сначала числа друг с другом, а потом 0 с 0 для получения старшэго бита) выполняем команду DAA. А если двоичное -- то логичнее всего перевести каждое из двух BCD в двоичное число. Записываешь значение в аккумулятор, 4 раза очищаешь флаг переноса + RRC, результат умножаешь на 10. Затем значению делаешь AND 0x0F, добавляешь. Всё -- в аккумуляторе однобайтовое правильное число. Записываешь обратно, потом складываешь обычные числа (учитывая carry) и записываешь результат в DPTR. |
|||
|
||||
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |