Консультация № 189186
13.04.2016, 22:16
0.00 руб.
0 3 1
Здравствуйте! У меня возникли сложности с таким вопросом:

Дано число в двоичном коде. Разделить его на две составляющие: в первую войдут только четные разряды, во вторую только нечетные разряды. Вычесть из первого числа значение 16, а из второго – 8.

Обсуждение

давно
Посетитель
7438
7205
14.04.2016, 01:07
общий
Типа так?
[code lang=asm]
mov ax, bx
and ax, 5555h
sub ax, 16
mov di, ax

mov ax, bx
and ax, 0aaaah
sub ax. 8
mov si, ax
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Старший Модератор
31795
6196
14.04.2016, 09:09
общий
14.04.2016, 09:10
Адресаты:
или так:
[code lang=asm h=100]mov cx,8
@@01:
shl ax,1
rcr bl,1
shl ax,1
rcr bh,1
loop @@01[/code]
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
14.04.2016, 09:45
общий
это ответ
Здравствуйте, valera.gladkov!

Смотрите код:
[code lang=asm h=150] mov cx,8
@@01:
shl ax,1
rcl bl,1
shl ax,1
rcl bh,1
loop @@01

sub bh,8
sub bl,16[/code]
В АХ загружжается число, в BL - записываются биты с индексами 0,2, ... , а в BH - 1,3, ...
ps: Данный вариант был получен совместно с Игорем Витальевичем/
Удачи!
5
Спасибо большое, очень помогли
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа