Преобразование из 16ого в 10ый формат
Нужно перевести(на ассемблере) шестнадцатиричные 6 байт(например ABCD1234FE56) в десятичный формат,результат сохранить в ячейках памяти.
Процессор шестнадцатиразрядный.
и вообще зачем это надо??????
если да, то дели его на 10(остаток деления - это результат, читаем результат с последней полученной цифры). сохранять в формате символов(прибавить к каждой полученной цифре код символа нуль, 30 вроде), иначе ahilles прав - все цифры хранятся в СС 2. при делении результат удобно хранить в стеке, т.к. последнея полученная цифра - первая и наоборот. делим число пока оно не обнулится.
Я разделить могу только слово на слово и двойное слово на слово....а как разделить 6 байт на слово я не понимаю....где хранить при этом делимое и куда сохранять частноею....регистры то 16разрядные...а команда DIV работает с DX и AX
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]