Ассемблер - битовые операции

Тема в разделе "Другие", создана пользователем Kommed, 5 июн 2008.

Статус темы:
Закрыта.
  1. Kommed

    Kommed Гость

    Здравствуйте! Есть задача: "Реализуйте логическую арифметику, при которой в одном слове хранилось бы 16 логических переменных(ассемблерная вставка на С++)". Идея, насколько я понял, такая - имеем слово(скажем просто в виде обычной глобальной переменной), устанавливаем, скажем второй бит (начиная счёт битов с единицы)

    OR <НАША_ПЕРЕМЕННАЯ>, 2
    ,
    сбросить -

    AND <НАША_ПЕРЕМЕННАЯ>,NOT 2
    ,
    проверить -

    TEST <НАША_ПЕРЕМЕННАЯ>, 2

    Надо же передавать номер бита и сдвигать на столько битов единицу(мы ведь не можем работать с произвольным битом - только с крайним, или я ошибаюсь?).
    А как придать этому всему ясную форму, скажем, подпрограммы, я не совсем понимаю.
    Буду очень признателен за любую помощь.
     
  2. angrydevil

    angrydevil Гость

    зайди на мотфан.ру. это форум модераторов телефонов моторола. там сидят сотни людей, которые каждый день ковыряют прошивки своих телефонов ассемблером. они тебе очень много по этому поводу могут рассказать.
     
  3. Surok

    Surok New Member

    Регистрация:
    22 июн 2008
    Сообщения:
    1
    Симпатии:
    0
    Допустим нужно проверить 3 бит переменной var.

    ...
    mov ax,var
    and ax, 4
    cmp ax, 0
    jnz ... ;3-й бит в "1"
    ...

    установить 3-й бит в "1"

    ...
    or var, 4
    ...

    сбросить 3-й бит

    ...
    and var,0FBh
    ...
     
Загрузка...
Похожие Темы - Ассемблер битовые операции
  1. alalai
    Ответов:
    0
    Просмотров:
    952
  2. Dimkawshm
    Ответов:
    2
    Просмотров:
    1.073
  3. Victoria123
    Ответов:
    0
    Просмотров:
    957
  4. MariyaStarikova
    Ответов:
    0
    Просмотров:
    977
  5. vladden
    Ответов:
    1
    Просмотров:
    1.842
Статус темы:
Закрыта.

Поделиться этой страницей