Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is x86-64 machine language big endian?

0x0000000000400507 <main+28>:    74 0c  je     0x400515 <main+42> 0x0000000000400509 <main+30>:    bf 28 06 40 00 mov    $0x400628,%edi  ..  0x400507 <main+28>: 0x28bf0c74 

I think shows the machine code is big-endian. Is my conclusion right?

like image 756
kern Avatar asked May 16 '11 13:05

kern


People also ask

Is x86 64 big-endian or little-endian?

The x86 processors use little-endian byte ordering. The least significant byte (LSB) of an integer is stored at the lowest address of the integer. The most significant byte is stored at the highest address for data items in this processor.

How do I know if my machine is big-endian?

If it is little-endian, it would be stored as “01 00 00 00”. The program checks the first byte by dereferencing the cptr pointer. If it equals to 0, it means the processor is big-endian(“00 00 00 01”), If it equals to 1, it means the processor is little-endian (“01 00 00 00”).

Is Windows big-endian or little-endian?

The following platforms are considered little endian: AXP/VMS, Digital UNIX, Intel ABI, OS/2, VAX/VMS, and Windows. On big endian platforms, the value 1 is stored in binary and is represented here in hexadecimal notation.

What operating systems are big-endian?

In the SAS System, the following platforms are considered big endian: IBM mainframe, HP-UX, AIX, Solaris, and Macintosh. The following platforms are considered little endian: VAX/VMS, AXP/VMS, Digital UNIX, Intel ABI, OS/2, and Windows.


1 Answers

No, Intel CPUs are little endian: http://en.wikipedia.org/wiki/Endianness

like image 68
linuts Avatar answered Sep 26 '22 22:09

linuts