Stackframe aufbaun?



  • Nabend allerseits!
    ich muss assemblercode in eine mfc-app. einbaun.
    dazu sind doch n paar stackoperationen nötig.
    wer kann mir erklären, wo ich nachlesen kann, wie
    sowas geht und was da in den registern passiert.
    ein beispiel wäre vielleicht auch nicht schlecht.
    dank + gruss uwe



  • Wozu brauchst du denn da Stackoperationen? Ich dachte sowas macht der Compiler automatisch und es wäre nicht so gut wenn man da manuell am Stack rumpfuscht. 😕
    Also etwas typisches ist sowas wie das hier:

    push ebp
    mov ebp,esp
    ...
    ...
    pop ebp
    

    Das wäre nun ein Stackframe für eine Prozedur. Wenn du nun Platz für lokale Variablen haben willst, kann du das so machen:

    sub esp,x
    push ebp
    mov ebp,esp
    ...
    ...
    pop ebp
    add esp,x
    

    x soll dabei die benötige Größe des Speichers auf dem Stack sein. Du kannst diesen Speicher dann mit [EBP+4] bis [EBP+4+X-1] ansprechen (ich hoffe mal das war jetzt richtig ;)). Ich hoffe mal das hat dir geholfen. 😕

    [ Dieser Beitrag wurde am 25.05.2002 um 23:11 Uhr von malfunction editiert. ]



  • @malfunction ... ok werds mal ausprobieren.
    danke



  • Ansonsten einfach ne Funktion in VC erstellen, die disassemblierung betrachten und sehen, wie M$ es macht 😉


Anmelden zum Antworten