Консультация № 189139
09.04.2016, 10:35
0.00 руб.
0 1 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Доброго времени суток. Мне нужна ваша помощь!
Суть задачи заключается в реализации знакового умножения.
Задача:
Даны два числа в двоичном виде(a: 10110101b; b: 00110111b). Обнулить в первом числе 3,5,6 разряды и разделить полученное на 8, второе умножить на 2 и логически сложить с первым. Результат проинвертировать.
Предпочтителен TASM. Модель памяти значения не имеет. Платформа: ОС Wiondows.
Уважаемые эксперты, заранее спасибо!)

Обсуждение

давно
Старший Модератор
31795
6196
12.04.2016, 08:46
общий
это ответ
Здравствуйте, nordhard!

Смотрите приложение:
[code lang=asm h=150]model tiny
.code
org 100h
start: mov al,10110101b;А
mov bl,00110111b;В
and al,10010111b;обнуляем биты младший разряд нулевой
mov cl,3;число сдвигов
shr al,cl;сдвигает, т.е. делим
shl bl,1;сдвиггаем, т.е. умножаем
or bl,al;логически суммируем
mov cx,8;будем выводить 8-мь бит
@@01: xor al,al;сбрасываем
shl bl,1;сдвигаем в CF бит
adc al,'0';переводим в символ
int 29h;выводим
loop @@01;в цикле
ret;выход
end start[/code]

Удачи!
5
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа