· Начало · Статистика · Регистрацiя · Поиск · FAQ · Правила · Язык · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Как заполнить битовие поля структуры?

Посл.отвђт Сообщенiе


Дата: Мар 19, 2003 20:23:26

Есть
BITRECORD RECORD faaa:1,fbbb:1,fccc:1,fddd:12
.data
bits BITRECORD <>

как забить ?
bits.faaa = 1;


Дата: Мар 20, 2003 02:32:35

Попробуйте "or bits,1"


Дата: Мар 20, 2003 07:25:33

Quantum
Afaik битовые поля располагаются от старших (15/31) к младшим (0).
[code]
or bits, 0x4000
[/code]

Аноним Дата: Мар 19, 2003 20:23:26
Воспользуйтесь "унарной операцией" MASK
[code]
; установить в 1
or bits, MASK BITRECORD.faaa

; очистить в 0
and bits, not MASK BITRECORD.faaa
[/code]


Дата: Мар 20, 2003 10:05:04

Спасибо. Помогли!


Дата: Мар 20, 2003 15:28:43

Небольшое уточнение. К великому сожалению имена полей записи глобальны, т.е. не может быть двух записей с полем, например, faaa.

Поэтому:
or bits, MASK BITRECORD.faaa
эквивалентно
or bits, MASK faaa

А в тасме есть для этого setfield.