Logical Operations
Logical Operations
Byte Operations and Addressing
Byte Operations
MOVB AX.LSB,loc16
0000 0000 Byte
AX
MOVB AX.MSB,loc16
Byte No change
AX
MOVB loc16, AX.MSB
Byte
loc16
No change
MOVB loc16, AX.LSB
Byte
loc16
No change
For loc16 = *+XARn[Offset]
Odd Offset Even Offset
loc16
Byte = 1. Low byte for register addressing
2. Low byte for direct addressing
3.
Selected byte for offset indirect addressing
Byte Addressing
MOVL XAR2, #MemA
MOVB *+XAR2[1], AL.LSB
MOVB *+XAR2[2], AL.MSB
MOVB *+XAR2[5], AH.LSB
MOVB *+XAR2[6], AH.MSB
AR2
AH.MSB AH.LSB AL.MSB AL.LSB
16 bit memory
01
02
05
06
12 34 56 78
04
07
00
03
34
56
12
78
MOVL XAR2, #MemA
MOVB AL.LSB,*+XAR2[1]
MOVB AL.MSB,*+XAR2[2]
MOVB AH.LSB,*+XAR2[4]
MOVB AH.MSB,*+XAR2[7]
Example of Byte Packing
Example of Byte Un-Packing
C28x - Appendix C - Assembly Programming C - 15