Пожалуйста помогите чайнику необходимо написать прогу на ассемблере умножения чисел с фиксированной запятойбсо сдвигом множимого в прямом коде ,код 2421 , формат (1,16) что с чего начать не знаю . Буду очень признателен тому кто ответит.
смысл умножение заключается в следушем например мы имеем два числа в двоичном коде Например: A= 110 B=101 A*B множитель 101 справа на лево первая единица значит прибавляем А 000000 далее идет 0 значит просто сдвигаем влево + 000110 далее 1 следовательно сдвигаем и прибавляем 000110 000110 + 001100 сдвиг 011000 011000 сдвиг результат 011110
да хотя бы прогу чтоб делала умножение со сдвигом множимого можно без всяких (прямом коде ,код 2421 , формат (1,16))
Не уж то не кто не может помочь я думаю здесь необходимо использовать команду cmp и циклические сдвиги влево
Наверное так? Отладить, правда, нет времени. Ты уж сам как-нибудь... Переполнение тоже не заметим. Код (Text): .data Result dw 0 .code mov ax, A ; Это будем сдвигать и складывать mov bx, B ; Биты этого будем анализировать mov cx, 16 ; 16 бит надо пройти в цикле mov dx, 1 ; Начальная маска chk_bit: test bx, dx ; Тестируем бит по маске jz no_add ; Бит = 0, пропускаем сложение add Result, ax ; Бит не ноль, прибавим, значить... no_add: shl ax, 1 ; Слагаемое влево на 1 бит shl dx, 1 ; Маску влево на 1 бит loop chk_bit ; теперь Result должен содержать производное