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

 
 
> Работа с битами в массиве.
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
Ответов
add
сообщение Apr 18 2006, 11:16
Сообщение #2


Местный
***

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



Цитата
Деление на 8 эквивалентно сдвигу вправо на 3.

Пасиба !
Да все так :-) . т.о. посление 3 бита в адресе собственно и есть бит в байте..как-то сразу недотумкал...осталось перевести из значение остатка в маску для установки/сброса бита и все ок.


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
Old1
сообщение Apr 19 2006, 06:26
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(add @ Apr 18 2006, 14:16) *
Да все так :-) . т.о. посление 3 бита в адресе собственно и есть бит в байте..как-то сразу недотумкал...осталось перевести из значение остатка в маску для установки/сброса бита и все ок.

Один из вариантов: зашить в СРАМ или ФЛЭШ таблицу:
0->1
1->2
2->4
3->8
4->16
5->32
6->64
7->128
и по ней остаток в маску и переводить.
Go to the top of the page
 
+Quote Post
add
сообщение Apr 19 2006, 08:07
Сообщение #4


Местный
***

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



Ага так и сделаю ("зашить в СРАМ или ФЛЭШ таблицу"). Всем спасиба за участие smile.gif

Сообщение отредактировал add - Apr 19 2006, 08:07


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 6th September 2025 - 14:04
Рейтинг@Mail.ru


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