3.6. Подреждане в данните

            Съществуват два стандарта за подреждане на данните при микропроцесори, които адресират побайтово:

            CPU  и  DMA  поддържат програмируемо подреждане на байтовете. То се избира чрез извода LENDIAN. При  LENDIAN = 1  се избира Little Endian, а при LENDIAN = 0  -  Big Endian.  Това избиране важи и за CPU, и за DMA. Подреждането на байтовете в думите и полудумите,които са резидентни в паметта, е еднакво за данните little endian и big endian.
            Таблица 3-9 показва кои битове от една дума в паметта в кои битове от приемащиярегистър се зареждат за всички възможни размери четени данни. Думата в паметта се приема, че е еднаква с тази, която е резултат от инструкцията LDW в първия ред.
            Таблици 3-11  и  3-4  показват  кои  битове  от  един  регистър   в   кои  битове  на  думата  от паметта се разполагат  за  всички  възможни  видове  записи  при  двата вида подреждане. Данните от регистъра източник се приема, че са еднакви с данните от резултата отинструкцията STW в първия ред.
 
 

Табл.3-9 .Съдържание на регистър след зареждане при подреждане Little Endian и Big Endian
('C6201, 'C6701)

Инструкция
Адресни битoве (1:0)
Резултат в регистъра при Big Endian
Резултат в регистъра при Little Endian
LDW
LDH
LDHU
LDH
LDHU
LDB 
LDBU
LDB
LDBU
LDB
LDBU
LDB
LDBU
00
00
00
10
10
00
00
01
01
10
10
11
11
BA987654h
FFFFBA98h
0000BA98h
00007654h
00007654h 
FFFFFFBAh
000000BAh 
FFFFFF98h
00000098h
00000076h
00000076h
00000054h
00000054h
BA987654h
00007654h
00007654h
FFFFBA98h
0000BA98h
00000054h
00000054h
00000076h
00000076h
FFFFFF98h
00000098h
FFFFFFBAh
000000BAh

                    Забележка: Съдържанието на думата в паметта за данни на адрес "хххх хх00" е BA987654h.
 
 


Табл.3-10. Съдържание на регистъра след зареждане на данни с подреждане Little Endian и
Big Endian (само за 'C6701)

Инструкция
Адресни битове (2:0)
Резултат в паметта при Big Endian
Резултат в паметта
при Little Endian
LDDW (’C6701)
000
FEDC BA98 7654 3210h FEDC BA98 7654 3210h
LDW
000
FEDC BA98h 7654 3210h
LDW
100
7654 3210h FEDC BA98h

                    Забележка: Съдържанието на двойната думата в паметта за данни на адрес "хххх х000" преди
                                            изпълнение на инструкция ST е FEDCBA98 76543210h.
 
 


Табл.3-11.Съдържание на паметта след зареждане на данни с подреждане Little Endian и
Big Endian ('C6201, 'C6701)

Инструкция
Адресни битове (1:0)
Резултат в паметта при Big Endian
Резултат в паметта
при Little Endian
STW
00
BA98 7654h BA98 7654h
STH
00
7654 1970h 0112 7654h
STH
10 
0112 7654h 7654 1970h
STB
00
5412 1970h 0112 1954h
STB
01
0154 1970h 0112 5470h
STB
10
0112 5470h 0154 1970h
STB
11
0112 1954h 5412 1970h

                    Забележка: Съдържанието на дума в паметта за данни на адрес "хххх хх00" преди изпълнение на
                                            инструкция ST е 01121970h. Съдържанието на регистъра източник е BA987654h.
 
 

Предходна страница

Следваща страница 1