VMS Help MACRO, VAX MACRO Assembler, Instructions, EMODx *Conan The Librarian (sorry for the slow response - running on an old VAX) |
Purpose: Extended multiply and integerize - perform accurate range reduction of math function arguments Format: opcode mulr.rx,mulrx.rb,muld.rx,int.wl,fract.wx Operation: int = {integer part of muld * {mulr'mulrx}}; frac = {fractional part of muld * {mulr'mulrx}} C. Codes: N = {fract LSS 0}, Z = {fract EQL 0}, V = {integer overflow}, C = 0 Exceptions: Integer or floating overflow, divide by zero Opcodes: 54 EMODF Ext. mul., integerize F_floating 74 EMODD Ext. mul., integerize D_floating 54FD EMODG Ext. mul., integerize G_floating 74FD EMODH Ext. mul., integerize H_floating Description: The floating multiplier extension mulrx is concatenated with the floating point multiplier (mulr) to gain eight additional low order fraction bits. This is then multiplied by muld. After multiplication, the integer portion is extracted and a floating point number is formed from the fractional part by truncating extra bits. The integer part is placed in int and the fractional part in frac.
|