Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kleine Integer? (https://www.delphipraxis.net/74157-kleine-integer.html)

xaromz 29. Jul 2006 11:06

Re: Kleine Integer?
 
Hallo,
Zitat:

Zitat von Ydobon
Abgesehen davon, es gibt keinen Typ, der an der Verarbeitungsbreite der CPU vorbei kommt. Die ist zz. nun einmal meist 32 Bit = Integer oder Cardinal. Alles andere wird genau mit diesen Werten gespeichert, nur das Laufzeitsystem hat dann mehr Arbeit mit der Typenprüfung.

Wie kommst Du denn darauf? Klar kann ich ein Byte auch als Byte im Speicher ablegen und die CPU verarbeitet das dann auch als Byte. Ob die CPU das Byte intern wieder "aufbläst" ist egal, aber auch unwahrscheinlich, weil sonst manche Befehle nicht mehr funktionieren würden (z. B. ROL, ROR).

Gruß
xaromz

Ydobon 29. Jul 2006 11:15

Re: Kleine Integer?
 
Genau dieses "Aufblasen" ist es. Aktuelle CPUs verarbeiten 32 Bit (oder bereits 64 Bit) und nicht 8 Bit.

xaromz 29. Jul 2006 11:19

Re: Kleine Integer?
 
Hallo,
Zitat:

Zitat von Ydobon
Genau dieses "Aufblasen" ist es. Aktuelle CPUs verarbeiten 32 Bit (oder bereis 64 Bit) und nicht 8 Bit.

Hast Du da 'nen Link oder so was? Das würde mich schon interessieren, wie eine CPU z. B. die Bit-Rotation dann umsetzt.

Gruß
xaromz

Ydobon 29. Jul 2006 11:45

Re: Kleine Integer?
 
Einfach mit Nullen auffüllen? Den Rest muss dann etwas anderes (natürlich mit Geschwindigkeitsverlust) machen. Wenn die CPU halt nichts kleiner als 32 Bit adressieren kann, gibt es kein Byte mehr.

Sorry, aber ich habe keinen Link.
Da ich mit 8-Bit Prozessoren angefangen und deren Entwicklung beobachtet habe, hatte ich aus meiner Beobachtung gefolgert, dass andere genauso urteilen werden.

himitsu 29. Jul 2006 11:47

Re: Kleine Integer?
 
8 BitRotation?

in 'nem 8-Bit-Register natürlich :zwinker:

z.B.
EAX = 32 Bit
AX = 16 Bit
AL und AH = 8 Bit

in der CPU sind die dann üperlappend gespeichert:
Code:
3322222222221111111111
10987654321098765432109876543210
******************************** EAX
                **************** AX
                        ******** AL
                ********         AH

Oxmyx 29. Jul 2006 11:49

Re: Kleine Integer?
 
Ohne zwingenden Grund (z.B. Dateizugriffe) halte ich es für sinnlos, einen anderen ganzzahligen Datentyp als Integer zu verwenden. Die vier Bytes Speicher machen niemandem was aus.

xaromz 29. Jul 2006 11:53

Re: Kleine Integer?
 
Hallo,
Zitat:

Zitat von himitsu
8 BitRotation?

in 'nem 8-Bit-Register natürlich :zwinker:

z.B.
EAX = 32 Bit
AX = 16 Bit
AL und AH = 8 Bit

Danke, ich spreche fließend Assembler und kenne mich auch mit dem Aufbau aktueller CPUs recht gut aus.
Das ist ja genau mein Problem: Wenn es Byte-Register gibt, wie und wozu bläst dann die CPU ein Byte auf 32 Bit auf (wie behauptet)? Das erscheint mir nicht wirklich einleuchtend.

Gruß
xaromz

himitsu 29. Jul 2006 12:00

Re: Kleine Integer?
 
wo bläßt sie den denn auf?

im RAM und sonstewo kann dennoch ein einzelnes Byte gespeichert werden, übertragen kann sie zwar nur 32 Bit, also auch alles größer als 32-Bit wird ebenfalls gesplittet, aber sonst?

xaromz 29. Jul 2006 12:03

Re: Kleine Integer?
 
Hallo,
Zitat:

Zitat von himitsu
wo bläßt sie den denn auf?

im RAM und sonstewo kann dennoch ein einzelnes Byte gespeichert werden, übertragen kann sie zwar nur 32 Bit, also auch alles größer als
32-Bit wird ebenfalls gesplittet, aber sonst?

Diese Behauptung kam von Ydobon im Beitrag #12.

Gruß
xaromz

Ydobon 29. Jul 2006 12:10

Re: Kleine Integer?
 
@himitsu: Wie wird denn ein einzelnes Byte gespeichert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:13 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz