|
|
|
FANDER69 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 23.9.2015 Репутация: нет Всего: нет |
есть код для вывода БЕЗ ЗНАКОВОГО числа размером в 4 байта
Чё добавить для полноценного вывода ЗНАКОВОГО числа
УСЛОВИЕ: ДОЛЖНЫ ИСПОЛЬЗОВАТЬСЯ ТОЛЬКО 16 -разрядыне регистры |
|||
|
||||
JAPH |
|
|||
Опытный Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 5 Всего: 23 |
Вывод знакового числа сводится к выводу беззнакового проверкой на знак, т.е. надо посмотреть, установлен ли старший бит: если да, вывести знак минус и изменить знак числа, если нет, то просто сразу выводить число как беззнаковое. Проверка старшего бита выполняется достаточно просто инструкцией test, а вот с изменением знака числа надо быть внимательным, т.к. команда neg, призванная этим заниматься, работает для 16-битных чисел, а у нас 32-битное. Есть два варианта: либо побитово инвертировать обе половины числа (командой not) и затем прибавить к результату единицу (add 1 к младшей половине, adc 0 к старшей), либо проверить на ноль младшую половину: если она ноль, то neg старшей, если она не ноль, то neg младшей и not старшей.
-------------------- Что непонятно - спрашиваем |
|||
|
||||
R71MT |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 28.7.2015 Репутация: нет Всего: 1 |
..это ясно, но ИМХО проблема в другом - вывести на экран 4-байтное число 16-битными регистрами |
|||
|
||||
ФедосеевПавел |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: 4 Всего: 10 |
А в чём проблема?
Знак - 2 варианта от JAPH. Сам перевод - читаем справку о команде div bx и начинаем медитировать до просветления. Ещё вариант - использование 32 битных регистров. Но перед этим почитать учебник, для понимания, что происходит в приведённом коде. |
|||
|
||||
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |