This documentation is archived and is not being maintained.

OpCodes.Div Field

Divides two values and pushes the result as a floating-point (type F) or quotient (type int32) onto the evaluation stack.

[Visual Basic]
Public Shared ReadOnly Div As OpCode
[C#]
public static readonly OpCode Div;
[C++]
public: static OpCode Div;
[JScript]
public static var Div : OpCode;

Remarks

The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

Format Assembly Format Description
5B div Divides two values to return a quotient or floating-point result.

The stack transitional behavior, in sequential order, is:

  1. value1 is pushed onto the stack.
  2. value2 is pushed onto the stack.
  3. value2 and value1 are popped from the stack; value1 is divided by value2.
  4. The result is pushed onto the stack.

result = value1 div value2 satisfies the following conditions:

| result | = | value1 |/ | value2 |, and:

sign(result) = +, if sign(value1) = sign(value2), or -, if sign(value1) ~= sign(value2)

The div instruction computes the result and pushes it on the stack.

Integer division truncates towards zero.

Division of a finite number by zero produces the correctly signed infinite value.

Dividing zero by zero or infinity by infinity produces the NaN (Not-A-Number) value. Any number divided by infinity will produce a zero value.

Integral operations throw ArithmeticException if the result cannot be represented in the result type. This can happen if value1 is the maximum negative value, and value2 is -1.

Integral operations throw DivideByZeroException if value2 is zero.

Note that on Intel-based platforms an OverflowException is thrown when computing (minint div -1). Floating-point operations never throw an exception (they produce NaNs or infinities instead).

The following Emit constructor overload can use the div opcode:

  • ILGenerator.Emit(OpCode)

Requirements

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also

OpCodes Class | OpCodes Members | System.Reflection.Emit Namespace

Show: