Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Преобразование из 16ого в 10ый формат

21K
11 ноября 2006 года
F0b0s
4 / / 11.11.2006
Помогите пожалуйста решить задачу.
Нужно перевести(на ассемблере) шестнадцатиричные 6 байт(например ABCD1234FE56) в десятичный формат,результат сохранить в ячейках памяти.
Процессор шестнадцатиразрядный.
261
12 ноября 2006 года
ahilles
1.5K / / 03.11.2005
в десятичные числа всё равно в памяти будут хранится в шестнадцатеричном формате или даже если так подумать то там она хранится двоичном формате.
и вообще зачем это надо??????
242
12 ноября 2006 года
Оlga
2.2K / / 04.02.2006
делить умеешь твое число, которое надо сохранить в СС 10?
если да, то дели его на 10(остаток деления - это результат, читаем результат с последней полученной цифры). сохранять в формате символов(прибавить к каждой полученной цифре код символа нуль, 30 вроде), иначе ahilles прав - все цифры хранятся в СС 2. при делении результат удобно хранить в стеке, т.к. последнея полученная цифра - первая и наоборот. делим число пока оно не обнулится.
21K
12 ноября 2006 года
F0b0s
4 / / 11.11.2006
Я разделить могу только слово на слово и двойное слово на слово....а как разделить 6 байт на слово я не понимаю....где хранить при этом делимое и куда сохранять частноею....регистры то 16разрядные...а команда DIV работает с DX и AX
242
12 ноября 2006 года
Оlga
2.2K / / 04.02.2006
возможно я ошибаюсь, т.к. давно этим не занималась. но набрасала сейчас алгоритм решения:
0) загоняешь в 2 байта, BХ например(в переменную 2 байтовую ...) 10d - op
1) обнуляешь DХ(каждый раз перед циклом в котором происходит деление 6 байтов на 2 байта)

[COLOR=purple]В цикле в котором происходит деление 6 байтов на 2 байта:[/COLOR]
1) загоняешь в АХ 2 байта (из шести). начинаем выбирать значения со старших разрядов.
2) делим на op в котором сохранили 10d
3)в DХ получаем остаток - не трогаем его
в АХ отправляем следущие 2 байта, предворительно сохранив полученное число(т.к. это начало следущего числа для деления)
4) возвращаемся к шагу 2, и так до тех пор пока АХ не обнулится.
когда АХ обнулится в DХ будет полученная от деления цифра(в DL), прибавляй 30 и сохраняй результат.

поробуй этот алгоритм,
только [COLOR=blue]алгоритм надо переделать с выборкой по одному байту, а не по два.[/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог