ebp in ASM verwenden

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Batze
Beiträge: 1492
Registriert: 03.06.2005 21:58
Wohnort: Berlin
Kontaktdaten:

ebp in ASM verwenden

Beitrag 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).
Hier sind meine Codes (aber die Seite geht gerade nicht):
http://www.basicpure.de.vu