Дано число в двоичном виде 133. Разделить его на 16, занести в 1, 3, 7 разряды нули. - Assembler

Узнай цену своей работы

Формулировка задачи:

помогите пожалуйста написать программу по заданию: дано число в двоичном виде 133. разделить его на 16, занести в 1, 3, 7 разряды нули. полученное значение логически сложить с числом 19. результаты всех команд вывести на экран

Решение задачи: «Дано число в двоичном виде 133. Разделить его на 16, занести в 1, 3, 7 разряды нули.»

textual
Листинг программы
{
mov al, 133
mov a, al
shr al, 4
mov b, al
and al, 01110101b
mov c, al
or al, 19
mov d, al
}
printf("Число a в 10 с/с = %i \n", a);
printf("Число а в 16 с/с = %0hx \n", a);
printf("Число b после деления на 19 = %0hx \n", b);
printf("Число с после смены мест = %0hx \n", c);
printf("Число d после сложения с числом 19 = %0hx \n", d);

Объяснение кода листинга программы

  1. { mov al, 133 mov a, al shr al, 4 mov b, al and al, 01110101b mov c, al or al, 19 mov d, al } В данном коде используется язык Assembler.
  2. Разбиваем число 133 на его составляющие: — mov al, 133 - присваиваем регистру AL значение 133 в двоичном виде — mov a, al — копируем значение из регистра AL в переменную A
  3. Делим число 133 на 16: — shr al, 4 - сдвигаем значение в регистре AL вправо на 4 позиции и получаем остаток от деления — mov b, al — копируем значение из регистра AL в переменную B
  4. Заносим в 1, 3, 7 разряды нули: — and al, 01110101b — сдвигаем значение в регистре AL влево на 1 позицию и получаем последние 3 разряда числа 133 (01110101b) — or al, 19 - объединяем последние 3 разряда числа 133 с числом 19 — mov d, al — копируем значение из регистра AL в переменную D
  5. Выводим результаты на экран: — printf(Число a в 10 с/с = %i \n, a) — выводим число A в десятичной системе счисления — printf(Число а в 16 с/с = %0hx \n, a) — выводим число A в шестнадцатеричной системе счисления — printf(Число b после деления на 19 = %0hx \n, b) — выводим число B в шестнадцатеричной системе счисления — printf(Число с после смены мест = %0hx \n, c) — выводим число C в шестнадцатеричной системе счисления — printf(Число d после сложения с числом 19 = %0hx \n, d) — выводим число D в шестнадцатеричной системе счисления

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы