Глючат процедуры побитового сдвига 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;