-
215 votesanswersviews
为什么引入无用的MOV指令会加速x86_64汇编中的紧凑循环?
Background: 在使用嵌入式汇编语言优化某些Pascal代码时,我注意到了一条不必要的 MOV 指令,并将其删除了 . 令我惊讶的是,删除不必要的指令导致我的程序变慢 . 我发现 adding arbitrary, useless MOV instructions increased performance 更进一步 . 效果不稳定,并根据执行顺序进行更改: the same junk i... -
6 votesanswersviews
FPC BASM32 POP bug?
Delphi和FPC BASM之间的另一个差异: program PopTest; {$IFDEF FPC} {$mode delphi} {$asmmode intel} {$ELSE} {$APPTYPE CONSOLE} {$ENDIF} var B: LongWord; procedure Pop(A: LongWord; var B: LongWord); asm ... -
2 votesanswersviews
SHGetFileInfo生成带有黑色背景的图标
我有SHGetFileInfo的问题 . 我使用FPC 2.6.2与Lazarus 1.0.14,这里是代码: procedure x; var FI: SHFILEINFO; icon: ticon; begin SHGetFileInfo('app.exe', 0, FI, SizeOf(FI), SHGFI_SYSICONINDEX or SHGFI_ICON or SHGFI_... -
-1 votesanswersviews
用很少的动作提高紧密循环的速度:)
我已经开始使用Lazarus,一个免费的Pascal Delphi版本 . 并且...今天的计算机在一个CPU周期中处理了相当多的字节...这让我想到了问题和疑问 . 我有一个紧凑的循环,我想要向上或向下移动一部分字节,总是只有一个字节 . 考虑一下代码: LowBound := 7; HighBound := 245; // Always the last record in the array...