/sys$common/syshlp/helplib.hlb MACRO, VAX MACRO Assembler, Instructions, CMPPx *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Purpose: Compare two packed decimal strings and set the condition codes Format: opcode len.rw,scr1addr.ab,src2addr.ab ;3 operand opcode src1len.rw,src1addr.ab, src2len.rw,src2addr.ab ;4 operand Operation: ({src1addr + ZEXT(len/2)}:src1addr) = ({src2addr + ZEXT(len/2)}:src2addr) ;3 operand ({src1addr + ZEXT(src1len/2)}:src1addr = ({arc2addr + ZEXT(src2len/2)}:src2addr ;4 operand C. Codes: N = {{src1 string} LSS {src2 string}}, V = 0, Z = {{src1 string} EQL {src2 string}}, C = 0 Exceptions: Reserved operand Opcodes: 35 CMPP3 Compare packed 3 operand 37 CMPP4 Compare packed 4 operand Description: In 3-operand format, the source 1 string specified by src1addr and len is compared with the source 2 string specified by the src2addr and len. In 4-operand format, the source 1 string is specified by src1addr and src1len, the source 2 string by src2addr and src2len. The only action in either case is to affect the condition codes. Notes: After execution of CMPP3 or CMPP4: R0 = 0 R1 = address of the byte containing the most-significant digit of string 1 R2 = 0 R3 = address of the byte containing the most-significant digit of string 2
|