![]() |
Pascal code to asm
Ich habe folgende Funktion in pascal:
Delphi-Quellcode:
Ich kann kein asm :(. Wenn jemand Zeit finden würde, diese Funktion nach asm zu übersetzen, wäre ich dankbar.
function func( PPS, BPP, A: Longint): Longint;
begin Dec(A); Result := ((PPS * BPP) + A) and not A; Result := Result div 8; end; Ich selber mag dieser Art der Fragestellung nicht, und ich verstehe es, wenn sorag diesen Thread geschlossen wäre, aber ich bin im Not. Danke. |
Re: Pascal code to asm
Du musst das garnicht übersetzen, lass es doch Delphi für dich machen ;) Einfach nen Breakpoint auf das begin setzen, F9, wenns am Breakpoint angekommen ist Strg+Alt+C und das was dann da steht abschreiben :)
Edit: ohne es zu testen würd ich tippen das es mit
Delphi-Quellcode:
funktionieren sollte...
function func( PPS, BPP, A: Longint): Longint;
asm sub ecx, 1 mul edx add eax, acx not ecx and eax, ecx sar eax, 3 end; |
Re: Pascal code to asm
die Parameter sollten doch so übergeben werden, oder?
EAX = PPS ECX = BBP EDX = A dann muss ganz am anfang von Dax code noch ein
Code:
rein und es sollte passen. (und noch aus acx ecx machen ;) )
xchg edx, ecx
edit: ich hab mir gerade mal den ASM-Code angeschaut, den der Delphi-Compiler daraus macht. Wieso macht der denn da so sachen wiw z.b.
Code:
statt einfach
Sub ecx, 1
Code:
:gruebel:
dec ecx
|
Re: Pascal code to asm
Wars nicht EAX, EDX, ECX, Stack? :gruebel:
@edit: ka :lol: |
Re: Pascal code to asm
Zitat:
|
Re: Pascal code to asm
Code:
stimmt auch nicht, da es sich hier um 'nen Integer und keinen LongWord/Cardinal handelt :zwinker:
shr eax, 3
|
Re: Pascal code to asm
Oh danke, hab doch echt Longword gelesen^^ Wurde in ein SAR verwandelt :)
|
Re: Pascal code to asm
[quote="BlackJack"]
edit: ich hab mir gerade mal den ASM-Code angeschaut, den der Delphi-Compiler daraus macht. Wieso macht der denn da so sachen wiw z.b.
Code:
statt einfach
Sub ecx, 1
Code:
:gruebel
dec ecx
Weil SUB ECX,1 schneller ist. Aus Intels Optimization Guidelines: Avoid instructions that unnecessarily introduce dependence-related stalls: inc and dec instructions, partial register operations (8/16-bit operands). |
Re: Pascal code to asm
Zitat:
@Amateurprofi: interessant, wusste ich noch gar nicht. aber was sind "dependence-related stalls" ? |
Re: Pascal code to asm
@BlackJack: IMUL ist, soweit ich weiß, signed multiplication
@Amateurprofi: muss ich gleich mal testen :) edit: sub ist wirklich schneller :shock: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz