![]() |
Re: Zahl um +1 erhöhen oder um -1 erniedrigen
eine funktion ist im Assembler-code (also der endgültigen binären form) nur eine reihe vno anweisungen mit einem RETN (return) am ende. damit dieses RETN aber weiss, wo es weitergeht, wird auf den callstack die adresse des nächsten befehls abgelegt.
Wenn du diesen code hast:
Code:
muss beim ausführen des calls auf den callstack "00x002" abgelegt werden, damit das programm weiss, wohin es zurückspringen soll, wenn die funktion beendet ist.
00x001 CALL 00x003 //funktionsaufruf
00x002 NOP //nix ;) 00x003 NOP //auch nix (genauer gesagt: "No OPeration") 00x004 RETN //zurück zu 00x002 So ungefähr auf jeden Fall... //roter kasten: ja, sakura, da komtm das geschwafel schon :mrgreen: |
Re: Zahl um +1 erhöhen oder um -1 erniedrigen
Man merkt das ihr richtig vom Fach seid.
Kurz zusammengefasst interessiert dich die sache mit dem Callstack eigentlich nur wenn du Richtig schnelle Programme schreiben willst. Spätestens dann weist du so was aber eh. Und unser Glück der Compiler macht das hier sowieso gleich. Es gibt aber durchaus sachen die der Compiler nicht mehr wegoptimieren kann und dann ist so ein wissen echt Gold wert. |
Re: Zahl um +1 erhöhen oder um -1 erniedrigen
[OT]
Hab mir gerade noch einmal die Überschrift angeschaut. Irgendwie kommt doch bei "um +1 erhöhen" und "um -1 erniedrigen" so etwa das Gleiche raus :mrgreen: . [/OT] Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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-2025 by Thomas Breitkreuz