// Solution A (par type)
type
TWord = record
case integer of
0: (_Low, _High: byte);
1: (_Word : Word);
end;
// Solution B (assembleur)
function MakeWordASM(const BLow, BHigh: byte): word;
asm
mov ah, dl;
end;
// Solution C (pascal)
function MakeWord(const BLow, BHigh: byte): word;
begin
result := BLow or (BHigh shl 8);
end;
// Autre possibilitée :
type
TMagic = record
case integer of
0: (_64bits : int64);
1: (_32bits : array[0..1] of longword);
2: (_16bits : array[0..3] of word);
3: (_8bits : array[0..7] of byte);
end;