64位bsr asm截断高32位

时间:2015-02-06 06:15:56

标签: assembly lazarus freepascal

我希望bsr能够以64位数运行。但是,以下仅适用于输入的低32位:

function BSR64(const Val: Int64): Integer;
begin
asm
  bsr           eax, [Val]   
...

我该怎么做?

我正在使用Lazarus在64位模式下进行编译。

1 个答案:

答案 0 :(得分:1)

按如下方式访问64位寄存器:

 bsr rax, [val]

eax是低32位。 ax是低16,al是低8。