реклама на сайте
подробности

 
 
> Работа с битами в массиве.
add
сообщение Apr 18 2006, 10:28
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Прошу помощи-совета. unsure.gif

//Есть массив:
.dseg
massiv: .byte 64
//Есть адрес бита в массиве (от начала массива)
//к примеру:
.equ adr_bit=314
//вопрос:как установить или сбросить этот бит?
Можно поделить "adr_bit" на 8, получить адрес байта,
остаток-бит в байте. (тогда возникает вопрос как поделить на 8, это наверное отдельная тема...)
Может можно как-то попроще с битами работать?


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vet
сообщение Apr 21 2006, 06:53
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



По опыту, его удобно пользовать для организации битовых переменных в нижних регистрах.

Загрузка единицы в 5 бит регистра R2:
set
bld r2,5

Загрузка нуля:
clt
bld r2,5

Копирование бита в Т:
bst r2,5

Ветвление:
sbrs r2,5
rjmp label

Плюс: не портится верхний регистр для загрузки константы с последующим and/or/eor.
Минус: bld/bst занимают 2 такта против 1-тактовой ldi.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 12:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01346 секунд с 7
ELECTRONIX ©2004-2016