I would like to know of a webpage that talks about the hardware implementation of all standard datatypes (especially arrays in C++).

Or, if anyone would like to just tell me, that's fine, too.

Thanks in advance...
Posted on 2001-10-01 12:30:24 by Ikari_Warrior
well you got the BYTE, then there's the WORD and finally the DWORD. :)
That's all you need to know. And that's all there is to data types.
Remember whatever the name people use to call them they all thunk down to the basic three.
Posted on 2001-10-01 12:40:04 by latigo
Don't forget REAL4, REAL8, REAL10, MMX registers that use 64 bit memory locations and other instruction sets like 3D Now!
Posted on 2001-10-01 12:47:09 by Thomas
Alright, I think that's enough to get started. I ask because it's a question on one of my homework assignments, and there's no real answer in the book.

Since I'm predominantly a Linux user (I hope this doesn't change your opinion of me), this info may not be that usable.

Nevertheless, thank you both.
Posted on 2001-10-01 13:05:16 by Ikari_Warrior
What is the difference between a WORD and a DWORD?

I assume that a BYTE is just your standard unsigned 8-bit data type.
Posted on 2001-10-01 13:12:14 by Ikari_Warrior
There is no problem with linux users here!
This info is usefull wether you use Windows or Linux (provided that the underlying processor is an x86 compatable).
The BEST thing you can do is get any of the Intel manual's that are spread all over the web.
That will give you the precise answer.
Anyway the answer you need pretty much boils down to what Thomas and i have said. Believe it or not :)

Latigo
Posted on 2001-10-01 13:14:53 by latigo
BYTE = 8 bits
WORD = 2 BYTEs = 16 bits
DWORD = 4 BYTES = 32 bits
Posted on 2001-10-01 13:15:58 by latigo
You're forgetting something Thomas

BYTE = 8 bits
WORD = 16 bits
DWORD =32 bits == real4 and near pointer
DWORD:WORD = 48 bits == is a far pointer
QWORD = 64 bits == real8 and mmx
QWORD:DWORD = 80 bits == real10
XWORD = 128 bits packed data == DWORD:DWORD:DWORD:DWORD or QWORD:QWORD, which can both be integers, and fpu.

MASM makes a big deal about type, but a DWORD is the same as a real4 (just the data stored in it is a different format).
Posted on 2001-10-01 15:55:50 by Kenny
Just to confuse things a little bit, when comparing integers, the results of both signed and unsigned compares are captured simultaneously in flags. A conditional jump instruction, following the compare, specifies what flags to test. This determines what type of comparison was intended.
Posted on 2001-10-01 18:20:16 by tank
Ikari_Warrior,

The guys have given you the data types that masm and other assemblers use, In think your question was related to what the hardware handles and this is of course registers.

Integer registers are 8, 16 & 32 bit.
Floating point registers can be 32, 64 and 80 bit.
MMX uses the FP registers as well and are 64 bit.
SIMD will handle 128 bit as packed data.

http://support.intel.com/design/pentiumiii/manuals/

is the link for the Intel PIII manuals and they are very good if a bit complicated. Its worth reading the first manual for thre architecture as well as the second manual for the instructions.

Regards,

hutch@pbq.com.au
Posted on 2001-10-02 09:26:06 by hutch--