/sys$common/syshlp/helplib.hlb MACRO, VAX MACRO Assembler, Instructions, MOVCx *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Purpose: Move character string or block of memory Format: opcode len.rw,srcaddr.ab,dstaddr.ab ;3 operand opcode srclen.rw,srcaddr.ab,fill.rb, ;5 operand dstlen.rw,dstaddr.ab Operation: {dst string} = {src string} Exceptions: None Opcodes: 28 MOVC3 Move character 3 operand 2C MOVC5 Move character 5 operand Description: dst as specified by dstaddr and len (3 operand) or dstlen (5 operand) is replaced by src as specified by srcaddr and len (3 operand) or srclen (5 operand). If dst is longer than src (5 operand only), the highest addresses of dst that are not filled by src are instead filled with fill. If dst is shorter than src, the copied string is truncated to fit in src. The operation of the instruction is such that any overlap of src and dst will not affect the result. Notes: After execution of MOVC3: R0 = 0 R1 = address of one byte beyond the source string R2 = 0 R3 = address of one byte beyond the destination string R4 = 0 R5 = 0 After execution of MOVC5: R0 = number of unmoved bytes remaining in the source string. R0 is nonzero only if source string is longer than the destination string R1 = address of one byte beyond the last byte in source string that was moved R2 = 0 R3 = address of one byte beyond the destination string R4 = 0 R5 = 0
|