Глючат процедуры побитового сдвига shl, shr в применении к LongInt
Можно поставить фикс BP7.0 -> BP7.01, или же использовать свои процедуры. Вот пример (работают на 386+):
function LongShl(A: LongInt; B: Byte): LongInt; assembler;
asm
mov cl,[B]
db $66 {код опеpаций с 32-битными pегистpами}
mov ax,word ptr [A]
db $66
shl ax,cl
db $66
push ax
pop ax
pop dx
end;
function LongShr(A: LongInt; B: Byte): LongInt; assembler;
asm
mov cl,[B]
db $66
mov ax,word ptr [A]
db $66
shr ax,cl
db $66
push ax
pop ax
pop dx
end;