Seite 1 von 1

ebp in ASM verwenden

Verfasst: 17.05.2009 12:21
von Batze
Da ja einige hier anmerken man könnte das ebp benutzen.
Muss man schon etwas aufpassen. Habe ich eben gemerkt als auf einmal Strukturierte Variablen nicht mehr funktioniert haben.

Code: Alles auswählen

  ; Img sei eine Strukturierte Variable
  ; Variable eine Globale (oder Lokale im Hauptteil)
  ; So in etwa könnte dann ein von PB erstellter asm-code aussehen  

  ; Variable = Img\irgendeinfeld
  LEA    ebp,[v_Img]
  MOV    ebx,dword [ebp+12]
  MOV   dword [v_Variable], ebx
  
  ; Varibale = Img\anderesfeld - 1 
  MOV    ebx,dword [ebp+16]
  DEC    ebx
  ... ; usw.

  ; Hier kommt der selbstgeschriebene Asm-Code der ebp eventuell verändert
  
  ; Variable = Img\nocheinanderesfeld
  MOV    ebx,dword [ebp+8]  ; Img wird nicht neu in ebp gelesen !!!
  ...
Ist mir nur aufgefallen. Weiß nicht ob ich der einzige war der das nicht wusste oder ob es hier hingehört.

Finde es zwar löblich von PB dass er nur einmal LEA nutzt (also schon optimiert) aber wäre es nicht noch besser einfach direkt dword [v_Img+16] oder sowas zu nehmen (sogar bei lokalen Variablen würde das ja gehen).