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

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

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

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

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

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

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

...
or var, 4
...

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

...
and var,0FBh
...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.