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

  • Автор темы Автор темы Kommed
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kommed

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

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

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

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

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

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

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

...
or var, 4
...

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

...
and var,0FBh
...
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab