Was versteht man unter 32-Bit-Anwendung?
Frage
Ich bin mir nicht sicher, was unter 16-Bit- oder 32-Bit-Anwendungen zu verstehen ist.Ist das eine 16-Bit-Anwendung, die nicht mehr als 2 ^ 16 Byte Speicherplatz benötigt?Bezieht sich dieses 16-Bit auf die maximale Größe der Anwendung?
Lösung
Eine 32-Bit-Anwendung ist eine Software, die in einem flachen 32-Bit-Adressraum ausgeführt wird.
Antworten auf häufig gestellte Fragen
Führt eine 64-Bit-CPU ein Standardprogramm (32-Bit) auf einer 64-Bit-Version eines Betriebssystems aus? Ja, es wird.64-Bit-Systeme sind abwärtskompatibel mit den 32-Bit-Gegenstücken.
Wird auf einem 64-Bit-Betriebssystem eine Standardanwendung auf einem 64-Bit-Prozessor ausgeführt? Wieder wird es.Dies liegt an der Abwärtskompatibilität.
Kann ich W2K und WXP auf einer 64-Bit-CPU ausführen und alte Software verwenden? Ja, ein 32-Bit-Betriebssystem (W2K und WXP) wird auf einem 64-Bit-Prozessor ausgeführt.Außerdem sollten Sie in der Lage sein, "alte Software" auf einem 64-Bit-Betriebssystem auszuführen.
Andere Tipps
Dies bedeutet, dass die Anwendung für einen Prozessor kompiliert wurde, der über 16 Bit Speicheradressierung oder 32 Bit Speicheradressierung verfügt.Gleiches gilt für 64-Bit-Anwendungen.
Die Zahl bezieht sich auf die maximale Speichermenge, die die Anwendung adressieren kann.
Die Zahl (32 oder 16 der Assembler-Direktive des Adressmodus (Beispiel "[use16]" und "[use32]")) bezieht sich nicht auf die maximale Speichermenge, die die Anwendung benötigt kann ansprechen!
Da es mit dem 80386+ auch möglich ist, Operanden- und Adressgrößenpräfixe in Kombination mit dem 16-Bit-PM zu verwenden, um bis zu 4 GB RAM zu adressieren.
(Die maximale Speichermenge, die unsere Anwendung verwenden kann, bezieht sich auf die Segmenteinträge der Segmentgröße in einem GDT / LDT-Selektor oder auf die Standardgröße für ein Segment von 64 KB.)
Der einzige Unterschied zwischen dem 32-Bit- und dem 16-Bit-Adressmodus ist die Bedeutung und Verwendung dieser Operanden- und Adressgrößenpräfixe.
[use16‹
Wenn wir also im 16-Bit-Adressmodus 32-Bit-Operanden / -Adressen verwenden möchten, müssen wir diese Präfixe zu unserem Opcode hinzufügen. Ohne diese Präfixe können wir nur 16 Bit verwenden.
[use32‹
Im 32-Bit-Adressmodus haben wir eine diametral entgegengesetzte Situation gefunden. Wenn wir also 32-Bit-Operanden / Adressen verwenden möchten, müssen wir diese Präfixe aus unserem Opcode weglassen und nur, wenn wir 16 Operanden / Adressen verwenden möchten. dann müssen wir diese Präfixe zu unserem Opcode hinzufügen.
Wenn wir diese Größenanweisungen oben (oder eine ähnliche Notation) sorgfältig verwenden, erledigt unser Assembler diese Aufgabe.