Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
FreePascal / Lazarus
|
AW: 256 bit Integer Addition von ASM in PurePascal
8. Jan 2012, 16:32
Zum Vergleich habe ich kurz die Assemblervariante auf 64-Bit umgeschrieben:
Delphi-Quellcode:
procedure Increment8( var Value; Add: LongWord); assembler;
asm
MOV EBX,EDX
LEA EDX,[EDX * 8]
SHR EBX,29 // 12/13/2011 Fixed
ADD [ECX].DWord[ 0],EDX
ADC [ECX].DWord[ 4],EBX
ADC [ECX].DWord[ 8],0
ADC [ECX].DWord[12],0
ADC [ECX].DWord[16],0
ADC [ECX].DWord[20],0
ADC [ECX].DWord[24],0
ADC [ECX].DWord[28],0
JC HashingOverflowError
end;
Der Test läuft 1:1 durch.
Nanu, ich dachte für 64-Bit gäbe es gar keinen Inline-Assembler mehr bei Delphi?
|
|
Zitat
|