beautypg.com

Maxim Integrated MAX31782 User Manual

Page 169

background image

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