PGM MOVE
REL
LIBWORD EQU 23456
SECWORD EQU 12345
SG EQU 270
G.MOVES EQU SG+31*2
MOVEMOD DW MOVEEND-MOVEMOD/2
DW SECWORD
DB 17,"movemod 5-Oct-81"
********************************************************
* *
* MOVEBYTES(SOURCE,DESTINATION,COUNT) *
* *
* Moves a buffer, source and destination are byte *
* addresses, count is a byte count. *
* *
********************************************************
DW LIBWORD
DB 7,"moves "
MOVES MOV SI,BX
XCHG DI,AX save global pointer
XOR BX,BX holds odd count flag
SHR CX make word count
RCL BX make non-zero if odd count
CLD
MOV DX,DS
CLI
MOV ES,DX
*
REP repeat word move
MOVW
*
OR BX,BX
JE LEAVE
MOVB move odd byte
LEAVE STI
MOV DI,AX
RETS
*
EVEN
DW 0
DW G.MOVES/2
DW MOVESI-MOVEMOD
DW G.MOVES/2
MOVEEND EQU $
*
DSEG
DMOVE DW DMOVEEND-DMOVE/2
MOVESI DW MOVES
DW 0
DMOVEEND END