[an error occurred while processing this directive]
|
Попытался я достичь "академического просветления" в своей башке на тему порядка байтов, и у меня окончательно ее (башку)снесло. Пытаюсь разобраться.
[b31-byte_dword_3-b24][b23-byte_dword_2-b16][b15-byte_dword_1-b8][b7-byte_dword_0-b0]
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~dword_0~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
[b15--byte_word_1--b8][b7--byte_word_0---b0][b15--byte_word_1-b8][b7--byte_word_0-b0]
|~~~~~~~~~~~~~~~~~~word_1~~~~~~~~~~~~~~~~~~||~~~~~~~~~~~~~~~~~word_0~~~~~~~~~~~~~~~~|b0 - бит 0 - младший бит - LSB
b31 - бит 31 - старший бит - MSBbyte_dword_0 - младший байт - LSB
byte_dword_3 - старший байт - MSBword_0 - младший word - LSW (его так и вправду обозначают???)
word_1 - старший word - MSW (его так и вправду обозначают???)byte_word_0 - младший байт - LSB
byte_word_1 - старший байт - MSBBASE - адрес dword_0
********************** BIG ENDIAN ******************************************************
* байты внутри word - {BIG ENDIAN}, старшие вначале
* байты внутри dword - {BIG ENDIAN}, старшие вначале
* word внутри dword - {BIG ENDIAN}, старшие вначалеword_0{BIG ENDIAN}----BASE+0x00 = [byte_dword_3] = word_1{BIG ENDIAN}-[byte_word_1]
\---BASE+0x01 = [byte_dword_2] = \[byte_word_0]
\--BASE+0x02 = [byte_dword_1] = word_0{BIG ENDIAN}-[byte_word_1]
\-BASE+0x03 = [byte_dword_0] = \[byte_word_0]
**************************************************************************************************************** LITTLE ENDIAN ***************************************************
* байты внутри word - {LITTLE ENDIAN}, младшие вначале
* байты внутри dword - {LITTLE ENDIAN}, младшие вначале
* word внутри dword - {LITTLE ENDIAN}, младшие вначалеword_0{LITTLE ENDIAN}----BASE+0x00 = [byte_dword_0] = word_0{LITTLE ENDIAN}-[byte_word_0]
\---BASE+0x01 = [byte_dword_1] = \[byte_word_1]
\--BASE+0x02 = [byte_dword_2] = word_1{LITTLE ENDIAN}-[byte_word_0]
\-BASE+0x03 = [byte_dword_3] = \[byte_word_1]
******************************************************************************************** А это что за нафиг??? И как его назвать??? Насколько я понимаю, так PDP-11 жила... **
* байты внутри word - {BIG ENDIAN}, старшие вначале
* word внутри dword - {LITTLE ENDIAN}, младшие вначале
* байты внутри word ????word_0{CRAZY_1}----BASE+0x00 = [byte_dword_1] = word_0{BIG ENDIAN}-[byte_word_1]
\---BASE+0x01 = [byte_dword_0] = \[byte_word_0]
\--BASE+0x02 = [byte_dword_3] = word_1{BIG ENDIAN}-[byte_word_1]
\-BASE+0x03 = [byte_dword_2] = \[byte_word_0]
******************************************************************************************************************* комплементарное извращение ***********************************
* байты внутри word - {LITTLE ENDIAN}, младшие вначале
* word внутри dword - {BIG ENDIAN}, старшие вначале
* байты внутри word ???
word_0{CRAZY_2}----BASE+0x00 = [byte_dword_2] = word_1{LITTLE ENDIAN}-[byte_word_0]
\---BASE+0x01 = [byte_dword_3] = \[byte_word_1]
\--BASE+0x02 = [byte_dword_0] = word_0{LITTLE ENDIAN}-[byte_word_0]
\-BASE+0x03 = [byte_dword_1] = \[byte_word_1]
*****************************************************************************************
Вопрос: когда говорят ARM LITTLE ENDIAN, ARM BIG ENDIAN - какая из комбинаций имеется в виду? Они у всех ARMов одинаковы????
Как с индианностью у разных компилеров AVR, PIC?
E-mail: info@telesys.ru