![]() |
|
![]() ![]() ![]() |
|
StandartenFuhrer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 22.10.2006 Репутация: нет Всего: нет |
Читал-читал форум... но толком так и не понял о БСД-формате...
Раскажите пожалуйста сам алгоритм перехода от ASCII к неупакованому\упокаваному БСД можна и с примерчиком.... ![]() |
|||
|
||||
JAPH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 1 Всего: 23 |
BCD = Binary Coded Decimals, двоично-десятичные числа. Неупакованное BCD-число хранит одну десятичную цифру, в двоичном виде, конечно. К примеру, 7 в неупакованном двоично-десятичном формате выглядит как 00000111b. Упакованное BCD-число хранит двузначное десятичное число, старшую цифру в старшей тетраде, младшую - в младшей. Так, число 79 выглядит как 01111001b. Переход между ASCII ("0" - "9") и неуп. BCD состоит в вычитании/прибавлении 30h.
Последнее можно короче - aad 16. Обратно догадайтесь сами ![]() -------------------- Что непонятно - спрашиваем ![]() |
|||
|
||||
Dude03 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
гораздо быстрее не отнимать, а делать "and".
3030h = 11000000110000b Соответственно инвертируй все биты 3030h и сделай с ним "and". |
|||
|
||||
JAPH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 1 Всего: 23 |
Почему гораздо быстрее? Обе команды по 1 такту.
Но если уж and, то почему с 0CFCFh, а не с 0F0Fh? -------------------- Что непонятно - спрашиваем ![]() |
|||
|
||||
Dude03 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 257 Регистрация: 28.4.2006 Репутация: нет Всего: 6 |
||||
|
||||
StandartenFuhrer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 22.10.2006 Репутация: нет Всего: нет |
Большое вам спасибо...краткость-сестра таланта....
![]() Добавлено @ 10:28 а как бы вы товарищи посоветовали хранить вещественные числа(задание лабы)...целую часть в одной переменной...адробную в другой?и тогда арифметические действия с дробной вызывают подозрение(+1 к целой)...формат неупакованый БСД... |
|||
|
||||
JAPH |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 1 Всего: 23 |
Зачем целую часть в одной переменной, дробную в другой? Просто в памяти отводим массив циферок
и виртуально разделяем его на целую и дробную части (т.е. фиксируем точку). Сложение (A = A + B) будет примерно таким:
-------------------- Что непонятно - спрашиваем ![]() |
||||
|
|||||
StandartenFuhrer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 22.10.2006 Репутация: нет Всего: нет |
Да со сложением и вычитанием разобрался...спасиб за помощь... но руководитель проекта(так их нынче виличают)... сказал что б разрадность было 5 в целой части и 5 в дробной... как подумаю как умножать...10 розрядов то бу в результате...сон пропадает...
Выручайте братцы... хоть сам и пишу давно на асьме... но с такой байдой не встречался ни разу... |
|||
|
||||
JAPH |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 8.1.2007 Где: Ленобласть Репутация: 1 Всего: 23 |
Конечно, это далеко не лучший способ перемножения чисел, но как один из вариантов сойдёт. В переменных запятые подразумеваются точно посередине.
-------------------- Что непонятно - спрашиваем ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |