Benutzer-Werkzeuge

Webseiten-Werkzeuge


jenny:offenerbereich:digitalesysteme

Dies ist eine alte Version des Dokuments!


wenig Datenmengen im Stack.

Hex code 0xDEADBEEF auf den Stack legen dann hat man ein Steak wenn der Prozessor gegrillt wird.

Stackwert ist 4Byte also immer 32Bit lang und adressiert nur den niederwertige Byte (little endian) als SpeicherAdresse zu den Stackpointerregister.

Rücksprung

Spezialbefehl für Programmsprünge zum speichern der Rücksprungadresse auf dem Stack ESP

Assemblerbefehll:
''call max'' ; max ist eine Speicheradresse
--> diese Folgeadresse landet mit push auf den ESP-Stack
.
max: todo
.
''ret''  ; holt die Speicheradresses von Stack mit pop ESP  
in libc

.format .asciz 'X = %d\n' ; Formatstring für printf() .asci 'X = %d\n\0' geht auch!!!!
call printf
add esp,8 ; Stackkorrektur für eigene push's

c Programm

#include "stdio.h"
 
int main(void){
  int a = 42;
// assembler lea eax, [edx,eax] //hack !!! wie a+b
  printf("%i",a)
  return 0;  // Integer 0 gibt an dass diese main() ohne Fehler beendet wurde!!!
}

gcc hello.c -S -masm=intel || -S nur assemblercode erstellen kein Maschinencode wie Executable ls oder dir
Ergebnis hello.s anstatt o.out oder hello unter Linux

/volume1/web/dokuwiki/data/attic/jenny/offenerbereich/digitalesysteme.1740636493.txt.gz · Zuletzt geändert: 2025/02/27 07:08 von 20.171.207.182