viele Anfängerfragen

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

viele Anfängerfragen

Beitragvon Cok3.Zer0 » Sonntag 17. August 2008, 18:35

Hallo, ich hab grad ein Buch über Assembler gelesen und ich stell mir die Frage,

...wie die Speicherverwaltung aussieht, wenn mehrere Prozesse ausgeführt werden. Wenn Prog A nun einen Wert in ein Register/ Speicherstelle im Ram schreibt, könnte Prog B den Wert doch unwissentlich verändern und Prog A merkt gar nichts davon.

...ob es eine Performanceänderung gibt, wenn ich eine .inc include, von der ich aber nur ein paar Variablen benutze, im Gegensatz von einer .inc, die nur die benutzten Variablen enthält.

...wie ich eine .com-Datei erstellen kann und wo es Infos darüber gibt.

...ob es den Quellcode von qeditor irgendwo gibt.

Viele Grüße
Coke
Cok3.Zer0
Newbie
 
Beiträge: 4
Registriert: Dienstag 12. August 2008, 18:38

Re: viele Anfängerfragen

Beitragvon crack » Montag 18. August 2008, 19:36

Das sind gute Fragen, die sich sicherlich auch andere schon gestellt haben:

Cok3.Zer0 hat geschrieben:Hallo, ich hab grad ein Buch über Assembler gelesen und ich stell mir die Frage,

...wie die Speicherverwaltung aussieht, wenn mehrere Prozesse ausgeführt werden. Wenn Prog A nun einen Wert in ein Register/ Speicherstelle im Ram schreibt, könnte Prog B den Wert doch unwissentlich verändern und Prog A merkt gar nichts davon.


Seit dem 286er unterstützt ein spezielles Hardware Feature die exclusive Zuweisung von Speicher für die verschiedenen Anwendungen, dieses Feature (virtual Mode) konnten allerdings erst Multitasking Betriebsysteme also Windows und Linux nutzen. Die Speicherzuweisung wir über die Global Descriptor Tables (GDT) und die Local Descriptor Tables (LDT) bewerkstelligt.

Cok3.Zer0 hat geschrieben:...ob es eine Performanceänderung gibt, wenn ich eine .inc include, von der ich aber nur ein paar Variablen benutze, im Gegensatz von einer .inc, die nur die benutzten Variablen enthält.

Jein, auf jeden Fall verschlingen deklarierte aber nicht genutzte Variablen Speicherplatz, auf die Performance dürfte sich das nur auswirken wenn der dem Programm zur Verfügung stehende Speicher arg begrenzt ist.

Cok3.Zer0 hat geschrieben:
...wie ich eine .com-Datei erstellen kann und wo es Infos darüber gibt.
Du erstellst eine .exe und wandelst diese per 'EXE2BIN' in eine .com, oder Du benutzt den Assembly Compiler 'A86' von Eric Isaacson, wenn Du dort den Programm Entry Point auf 0100h setzt wird normalerweise automatisch eine .com Datei erzeugt.

Cok3.Zer0 hat geschrieben:...ob es den Quellcode von qeditor irgendwo gibt.

Viele Grüße
Coke


Meines Wissens nach nicht, aber Steve Hutchesson hat dem MASM32 Paket eine ähnlichen 'Open Source' Editor zugefügt.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: viele Anfängerfragen

Beitragvon Cok3.Zer0 » Dienstag 19. August 2008, 21:00

Danke für die Antwort!

Zu 1: Wandelt das Betriebsystem oder der Prozessor selbst die Speicheranfragen in andere um?
Aber wenn nun ein Wert im AX-Register gespeichert ist und nun ein anderer Prozess Rechenzeit zugewiesen bekommt, wird dann der Wert in den Arbeitspeicher geschrieben? ( Und von wem? )

Zu 3: EXE2BIN versteh ich so, dass die in hexadezimale Exe in eine duale Com umgewandelt wird.
Aber die hexadezimale muss doch auch irgendwie zur Laufzeit übersetzt werden, denn der Prozessor versteht nur Dual.
Müsste denn nicht eine duale Datei schneller ausgeführt werden als eine hexadezimale?

PS:
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model

Was ist der Unterschied, wenn ich anstatt .486 .386 oder .586 schreibe, ist doch alles 32 bit?

Viele Grüße
Alex
Cok3.Zer0
Newbie
 
Beiträge: 4
Registriert: Dienstag 12. August 2008, 18:38

Re: viele Anfängerfragen

Beitragvon crack » Mittwoch 20. August 2008, 18:14

Cok3.Zer0 hat geschrieben:Danke für die Antwort!

Zu 1: Wandelt das Betriebsystem oder der Prozessor selbst die Speicheranfragen in andere um?

Die Speicherverwaltung/Zuweisung besorgt Windows/Linux und die Northbridge.
Cok3.Zer0 hat geschrieben: Aber wenn nun ein Wert im AX-Register gespeichert ist und nun ein anderer Prozess Rechenzeit zugewiesen bekommt, wird dann der Wert in den Arbeitspeicher geschrieben? ( Und von wem? )

Multitaskingbetriebsysteme in einer Single Protessor/Core Umgebung bedienen die Task nacheinander, wird von einem Task zum nächsten geschaltet werden die Registerwerte des Prozessors auf einem Softwarestapel abgelegt, und beim erneuten bedienen des Tasks von dort zurückgeholt.

Cok3.Zer0 hat geschrieben:Zu 3: EXE2BIN versteh ich so, dass die in hexadezimale Exe in eine duale Com umgewandelt wird.
Aber die hexadezimale muss doch auch irgendwie zur Laufzeit übersetzt werden, denn der Prozessor versteht nur Dual.
Müsste denn nicht eine duale Datei schneller ausgeführt werden als eine hexadezimale?

Auch die Exe ist Dual :wink: Der Unterschied zwischen .com und .exe liegt in der groben Struktur beider Dateien. .exe sind generell ausführbare Anwendungen, und die .com Datei war ursprünglich das Format transienter Dos Befehle, der Vorteil der .com ist der einfache Zugriff auf den Inhalt der Commandozeile und die Umgebungsvariablen.
Cok3.Zer0 hat geschrieben:PS:
.486 ; create 32 bit code
.model flat, stdcall ; 32 bit memory model

Was ist der Unterschied, wenn ich anstatt .486 .386 oder .586 schreibe, ist doch alles 32 bit?

Viele Grüße
Alex


Ja, es sind alles 32Bit Prozessoren, aber die Maschinenbefehlssätze sind bei 486 und 586 (Pentium) umfangreicher, ein Programm für .386 Plattform läuft natürlich auch auf einem Pentium ...
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Re: viele Anfängerfragen

Beitragvon Cok3.Zer0 » Donnerstag 28. August 2008, 18:40

Vielen Dank für die Antworten :idea:
Cok3.Zer0
Newbie
 
Beiträge: 4
Registriert: Dienstag 12. August 2008, 18:38


Zurück zu Assembler

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag
  • Anfängerfragen
    von Chrisimo » Donnerstag 12. Oktober 2006, 11:40
    2 Antworten
    1957 Zugriffe
    Letzter Beitrag von CDW Neuester Beitrag
    Freitag 20. Oktober 2006, 20:00

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron