![Maxim Integrated MAX31782 Скачать руководство пользователя страница 169](http://html1.mh-extra.com/html/maxim-integrated/max31782/max31782_user-manual_1744481169.webp)
MaximIntegrated 19-4
MAX31782 User’s Guide
Revision 0; 8/11
19.3.4MovingValuesBetweenRegistersofDifferentSizes
Before covering some transfer scenarios that might arise, a special register must be introduced that will be used in
many of these cases . The 16-bit General Register (GR) is expressly provided for performing byte singulation of 16-bit
words . The high and low bytes of GR are individually accessible in the GRH and GRL registers respectively . A read-
only GRS register makes a byte-swapped version of GR accessible and the GRXL register provides a sign-extended
version of GRL .
8-bitdestination
←
lowbyte(16-bitsource)
The simplest transfer possibility would be loading an 8-bit register with the low byte of a 16-bit register . This transfer
does not require use of GR and requires a prefix only if the destination or source register are outside of the single cycle
write or read regions, 0–7h and 0–Fh, respectively .
move
OFFS, LC[0] ; copy the low byte of LC[0] to the OFFS register
move
IMR, @DP[1] ; copy the low byte @DP[1] to the IMR register
move
WDCN, LC[0] ; assembles to:
move PFX[2], #00h
;
move (WDCON-80h), LC[0]
8-bitdestination
←
highbyte(16-bitsource)
If, however, we needed to load an 8-bit register with the high byte of a 16-bit source, it would be best to use the GR
register . Transferring the 16-bit source to the GR register adds a single cycle .
move
GR, LC[0]
; move LC[0] to the GR register
move
IC, GRH
; copy the high byte into the IC register
16-bitdestination
←
concatenation(8-bitsource,8-bitsource)
Two 8-bit source registers can be concatenated and stored into a 16-bit destination by using the prefix register to hold
the high-order byte for the concatenated transfer . An additional cycle may be required if either source byte register
index is greater than 0Fh or the 16-bit destination is greater than 07h .
move
PFX[0], IC ; load high order source byte IC into PFX
move
@++SP, AP
; store @DP[0] the concatenation of IC:AP
; 16-bit destination sub-index: dst=08h
; 8-bit source sub-indexes:
; high=10h, low=11h
move
PFX[1], #00h ;
move
PFX[3], high ; PFX=00:high
move
dst, low
; dst=high:low
Low(16-bitdestination)
←
8-bitsource
To modify only the low byte of a given 16-bit destination, the 16-bit register should be moved into the GR register such
that the high byte can be singulated and the low byte written exclusively . An additional cycle is required if the destina-
tion index is greater than 0Fh .
move
GR, DP[0]
; move DP[0] to the GR register
move
PFX[0], GRH ; get the high byte of DP[0] via GRH
move
DP[0], #20h ; store the new DP[0] value
; 16-bit destination sub-index: dst=10h
; 8-bit source sub-index: src=11h
move
PFX[1], #00h ;
move
GR, dst
; read dst word to the GR register
move
PFX[5], GRH ; get the high byte of dst via GRH
move
dst, src
; store the new dst value