# Integer to Double Integer Multiplication and Division Integer Math

 Inputs/Outputs Operands Data Types IN1, IN2 VW, IW, QW, MW, SW, SMW, T, C, LW, AC, AIW, Constant, *VD, *AC, *LD INT OUT VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC DINT

 Memory Ranges ENO Errors Instruction Support for S7-200 CPUs SIMATIC/International Mnemonics The Multiply Integer to Double Integer instruction multiplies two 16-bit integers and produces a 32-bit product. The Divide Integer to Double Integer instruction divides two 16-bit integers and produces a 32-bit result consisting of a 16-bit remainder (most-significant) and a 16-bit quotient (least-significant). In the STL Multiply instruction, the least-significant word (16 bits) of the 32-bit OUT is used as one of the factors. In the STL Divide instruction, the least-significant word (16 bits) of the 32-bit OUT is used as the dividend. In LAD and FBD: IN1 * IN2 = OUT IN1 / IN2 = OUT In STL: IN1 * OUT = OUT OUT / IN1 = OUT Error Conditions that Set ENO = 0: SM1.1 (overflow), SM1.3 (divide-by-zero), SM4.3 (run-time), 0006 (indirect address) These instructions affect the following Special Memory bits: SM1.0 (zero); SM1.1 (overflow); SM1.2 (negative); SM1.3 (divide-by-zero) If SM1.3 (divide by zero) is set during a divide operation, then the other math status bits are left unchanged and the original input operands are not altered. Otherwise, all supported math status bits contain valid status upon completion of the math operation.

Example