Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив байт рассматривать как массив бит 
:(
    Опции темы
Innuendo108
Дата 19.10.2010, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



Есть массив из 3 байт, мне его необходимо рассмотреть как массив 24 бит. Как это сделать?


Или к примеру массив из 3 байт, необходимо рассмотреть как массив из восьми 3-разрядных слов. Это аналогично. Как такое осуществить?


Это сообщение отредактировал(а) Innuendo108 - 20.10.2010, 02:22
PM MAIL   Вверх
Mikl_
Дата 20.10.2010, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 6
Всего: 14



Цитата(Innuendo108)
Есть массив из 3 байт, мне его необходимо рассмотреть как массив 24 бит. Как это сделать?
 А по-конкретнее? smile логические операции OR, XOR, AND, TEST и так обрабатывают байты/слова/двойные слова по-битно для использования (хранения/анализа) в байтах групп отдельных битов существует такое понятие как RECORD (что это такое -- посмотри самостоятельно в гугле) 
PM MAIL   Вверх
Innuendo108
Дата 20.10.2010, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 143
Регистрация: 3.4.2008

Репутация: нет
Всего: 2



Вот задание по конкретнее.
Массив из 3 байт рассмотреть как массив из воьсми 3-разрядных слов и к каждому слову применить xor c 101
PM MAIL   Вверх
Mikl_
Дата 21.10.2010, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 6
Всего: 14



Цитата(Innuendo108)
Массив из 3 байт рассмотреть как массив из воьсми 3-разрядных слов и к каждому слову применить xor c 101 
Код
mov bx,offset mass
xor byte ptr [bx+0],10110110b
xor byte ptr [bx+1],11011011b
xor byte ptr [bx+2],01101101b
 smile   

Это сообщение отредактировал(а) Mikl_ - 21.10.2010, 02:55
PM MAIL   Вверх
iff
Дата 22.10.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


Профиль
Группа: Участник
Сообщений: 949
Регистрация: 23.3.2007

Репутация: 5
Всего: 16



Цитата(Innuendo108 @  19.10.2010,  20:55 Найти цитируемый пост)
Есть массив из 3 байт, мне его необходимо рассмотреть как массив 24 бит. Как это сделать?

Данная функция рассматривает байтовую строку как массив бит. Она считывает значения из массива и помещает его в регистр AL (т.е. AL=0 или AL=1):
Код

ReadBitMass    PROC    NEAR
    PUSH    BP
    MOV    BP,SP
    PUSHF
    PUSH    AX BX
    MOV    AX,[BP+4]
    MOV    BL,8
    DIV    BL
    MOVZX    BX,AL
    ADD    BX,[BP+6]
    MOVZX    AX,AH
    XOR    AX,0000000000000111B
    BT    [BX],AX
    POP    BX AX
    SETC    AL
    POPF
    POP    BP
    RET    4
ReadBitMass    ENDP
;Для 80386+

Пример вызова:
Код

MASS    DB    11101011B,01010000B
DAT1    DB    ?
INDEX    EQU    12

        ...

.386
    PUSH    OFFSET MASS
    PUSH    INDEX
    CALL    ReadBitMass
    MOV    DAT1,AL

В DAT1 помещает 12-ый элемент массива MASS (12-ый бит при отсчете от начала). Т.е. DAT1 становится равным 0.
П.С. Помните, отсчет индексов элемента массива начинается с нуля.

Добавлено через 2 минуты и 39 секунд
Такого рода функции могут быть полезны для организации булевого массива большого объема (когда на один элемент данных булевого типа (1 бит) жалко тратить целый байт и тогда при момощи таких функций организуется хранение 8 элементов в одном байте).


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0682 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.