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?

War es hilfreich?

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.

Siehe Wikipedia - 16-Bit , 32-Bit , 64-Bit (und mehr).

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.

Präfix für die Operandengröße im 16-Bit-Modus

Dirk

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top