Пример использования битовой структуры
Дата создания файла задается в виде:
день : 5 битов;
месяц : 4 бита;
год: 7 битов.
Год задает разность между текущим годом и 1970[13]
годом.
Значения для текущей даты упаковать в структуру и
проверить правильность упаковки.
ideal
p486
model flat
extrn ExitProcess:proc
dataseg
record data1 y:7, m:4, d:5
d1 data1 <>
day db 1
month db 11
year dw 2000
codeseg
begin:
movzx ax, [day]
movzx bx, [month]
mov cl, m
shl bx, cl
or ax, bx
mov bx, [year]
sub bx, 1970
mov cl, y
shl bx, cl
or ax, bx
mov [d1], ax
mov ax, [d1]
mov bx, mask d
and bx, ax
mov [day], bl
mov bx, mask m
and bx, ax
mov cl, m
shr bx, cl
mov [month], bl
mov bx, mask y
and bx, ax
mov cl, y
shr bx, cl
add bx, 1970
mov [year], bx
call ExitProcess
end begin
Использование битовых структур позволяет сделать программу более мобильной. При изменении размера полей достаточно изменить только определение структуры, все остальные команды изменять не надо.