I am trying to perform an arithmetic shift right in Delphi. I can't get it to work though, it keeps giving incorrect answers.
Here is my code;
  lValue := offset;
  asm
    mov cl,32
    sar lValue,cl
  end;
  hgh := lValue and $FFFFFFFF;
When offset is set to 1024 and the shift right is set to 32, hgh should equal 0. In my code, hgh = 1024.
 
    