Benutzer-Werkzeuge

Webseiten-Werkzeuge


jenny:offenerbereich:digitalesysteme

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
jenny:offenerbereich:digitalesysteme [2025/02/27 07:08]
20.171.207.182 alte Version wiederhergestellt (2024/07/03 16:43)
jenny:offenerbereich:digitalesysteme [2025/02/27 07:08] (aktuell)
20.171.207.182 alte Version wiederhergestellt (2024/08/21 19:53)
Zeile 3: Zeile 3:
 Hex code 0xDEADBEEF auf den Stack legen dann hat man ein Steak wenn der Prozessor gegrillt wird. 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.+Stackwert ist 4Byte also immer 32Bit lang und adressiert nur den niederwertige Byte (little endien) als SpeicherAdresse zu den Stackpointerregister.
  
 ====== Rücksprung ====== ====== Rücksprung ======
 Spezialbefehl für Programmsprünge zum speichern der Rücksprungadresse auf dem Stack ESP Spezialbefehl für Programmsprünge zum speichern der Rücksprungadresse auf dem Stack ESP
-  Assemblerbefehll: +  Assemblerbefehll: ''call max'' ;// max ist eine Speicheradresse 
-  ''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  +
  
-<note tip> 
-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' 
-</note> 
- 
- 
- 
-====== c Programm ====== 
-<code c> 
-#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!!! 
-} 
-</code> 
- 
- 
- 
-''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