@artemdrake2013
21 год

(Ассемблер) Как извлечь 2 бита из слова, сделать между ними and, or и т.д. и результаты как биты поместить в переменную?

Как из слова (16 бит) вытащить 2 конкретных бита, провести над ними 16 логических операций типа and, or, затем каждый результат как бит положить в слово 16 бит? Задача была такой: "Реализуйте логическую арифметику, при которой в одном слове хранилось бы 16 логических переменных."

Немного кода С++ ниже.

#include "pch.h"
#include <iostream>
#include "stdio.h"
using namespace std;

int main()
{
    setlocale(0, "");
    unsigned short int number;
    short int b1, b2, result;


    cout << "Введите число от 0 до 65535: " << endl;
    cin >> number;
    cout << "Введите индекс бита от 0 до 15:" << endl;
    cin >> b1;
    cout << "Введите индекс бита от 0 до 15:" << endl;
    cin >> b2;

    __asm {

        mov ax, number

    }



    cout << result << endl;

    system("PAUSE");

    return 0;
}
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Проверить установку 6 бита
bool bit6IsSet = word & (1 << 6);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы