deeeman » 11 дек 2007, 09:24
Привет тебе!
наткнулся на твою тему, т к очень нужно реализовать подобное...
а именно Программу для умножения двух 16-разрядных чисел без
знака на языке ассемблера МП К580.
Описание задачи:
Умножение двоичных чисел представляет последовательность операций сдвига и сложения (аналогично умножению «в столбик» десятичных чисел).
Шестнадцатиразрядные числа занимают два байта, поэтому целесообразен следующий алгоритм:
- загружаем множимое в пару регистров DE, множитель – в пару регистров BC, результат будет храниться в паре регистров HL.
- умножаем множимое сначала на младший байт множителя, потом – на старший байт, для этого:
- загружаем в регистр А значение регистра С.
- регистр С обнуляем, и в дальнейшем используем в качестве счетчика
- в регистр С заносим значение 8 (00001000).
- организуем цикл: при каждом обороте цикла анализируем разряды множителя, начиная с его старшего разряда. В соответствии с этим частичные произведения будут формироваться, начиная со старшего частичного произведения. Накопление суммы частичных произведений будем производить в паре регистров HL, то есть к содержимому предварительно сброшенной в нуль пары регистров HL вначале прибавим восьмое частичное произведение; затем, сдвинув на один разряд влево содержимое пары регистров HL, прибавим седьмое частичное произведение, и так далее, пока не будут просуммированы все частичные произведения. После этого уменьшаем значение счетчика (регистра C) на единицу. Цикл выполняем до тех пор пока значение регистра С не станет равным нулю.
- сдвигаем на один разряд влево содержимое регистров HL, загружаем в регистр A значение регистра В, устанавливаем значение регистра С в 8, и повторяем цикл: то есть производим умножение на старший байт.
- записываем полученное произведение – значение пары регистров HL - в оперативную память.
Следует учесть, что если полученное произведение будет более, чем шестнадцатиразрядным, то старшие разряды будут отброшены.
Буду рад получить от тебя какие нибудь комментарии, помощь, или как найти материал по этой теме.
- Вложения
-
kr.doc
- полностью описание
- (47.5 КиБ) Скачиваний: 827