PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschied 16-Bit/32-Bit Programm


Taz
2002-08-14, 07:19:05
Hallo Leute

ganz einfache Frage: Was ist der Unterschied zwiscjen einem16-Bit Programm und einem 32-Bit Programm?

Danke

GUNDAM
2002-08-14, 12:49:42
16 Bit Anwendungen sind für Win 3.x optimiert worden. Laufen aber auch unter Win 9x/ME/2000/XP;) 32 Bit Anwendungen laufen hingegen nur unter 32 Bit Betriebssystemen. Ausserdem sind 32 Bit Anwendungen unter Win2000 und Co schneller als 16 Bit Anwendungen:)

Marcel
2002-08-14, 14:23:45
Der Unterschied liegt im Wesentlichen in der Nutzung der Register.
16bit-Progs nutzen die Register der x86er-Reihe 16bittig, also AX, BX, CX usw; zudem wird diese schöne 16+16=20-Bit Adressierung (16 Bit Offset, 16 Bit Segment, werden zur Adresse zusammengefasst, indem der Inhalt des Segment-Registers um 4 Bit nach links geshiftet und dann das Offset-Register addiert wird) aus dem 8086 genutzt, womit 1 MB (mit A20-Gate 65520 Bytes mehr: HMA) addressierbar sind.
Unter Win3.1 müssten diese Anwendungen den Speicher dann in 64kB-Blöcken (weil innerhalb derer der Speicher mit 16bit-Adressen ansprechbar ist: 2^16 = 65536 = 64k) nutzen, vermute ich.

32bit-Progs nutzen dieselben Register, nur um 16 Bit breiter. Die heißen dann EAX, EBX, ECX etc. Auch arbeiten sie mit 32 bit breiten Adressen, womit das ganze Segment-/Offset-Rumgehühnere entfällt. Sie benötigen unter DOS eine eigene Speicherverwaltung (DOS4GW war so ein Teil, wenn ich mich recht erinnere), da DOS nur diesen 16+16=20-Kram kennt. Win 95 und Nachfolger sowie WinNT (XP = NT 5.1!) bringen sowas für Win32-Apps mit.

Der Geschwindigkeitsvorteil beruht zum einen darauf, dass man nun mit 32 Bit auf einmal rechnen kann, statt jede 32Bit-Integerzahl erst in zwei Happen à 16 Bit zu zerlegen und dann einzeln damit rumzueiern, um anschließend die Teilergebnisse passend voreinanderzuhauen. Zum anderen kann der Speicher wesentlich besser genutzt werden; ab 64 kB isses eben einfacher, da man den Speicher immer noch in einem Block hat.

Gruß,
Marcel

Unregistered
2002-08-16, 02:45:01
LoooL @Marcel ..... wat ne Antwort !!! :)