Дано число в двоичном виде 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);
Объяснение кода листинга программы
- { 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.
- Разбиваем число 133 на его составляющие: — mov al, 133 - присваиваем регистру AL значение 133 в двоичном виде — mov a, al — копируем значение из регистра AL в переменную A
- Делим число 133 на 16: — shr al, 4 - сдвигаем значение в регистре AL вправо на 4 позиции и получаем остаток от деления — mov b, al — копируем значение из регистра AL в переменную B
- Заносим в 1, 3, 7 разряды нули: — and al, 01110101b — сдвигаем значение в регистре AL влево на 1 позицию и получаем последние 3 разряда числа 133 (01110101b) — or al, 19 - объединяем последние 3 разряда числа 133 с числом 19 — mov d, al — копируем значение из регистра AL в переменную D
- Выводим результаты на экран:
— 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 в шестнадцатеричной системе счисления
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д