OpCodes.Ble 字段


如果第一个值小于或等于第二个值,则将控制转移到目标指令。Transfers control to a target instruction if the first value is less than or equal to the second value.

public: static initonly System::Reflection::Emit::OpCode Ble;
public static readonly System.Reflection.Emit.OpCode Ble;
 staticval mutable Ble : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ble As OpCode 



下表列出了指令的十六进制和 Microsoft 中间语言(MSIL)程序集格式以及简短的参考摘要: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
3E <int32>3E <int32> ble targetble target 如果第一个值小于或等于第二个值,则按指定的偏移量分支到目标指令。Branch to the target instruction at the specified offset if the first value is less than or equal to the second value.

堆栈转换行为顺序如下:The stack transitional behavior, in sequential order, is:

  1. value1 推送到堆栈上。value1 is pushed onto the stack.

  2. value2 推送到堆栈上。value2 is pushed onto the stack.

  3. 从堆栈中弹出 value2value1;如果 value1 小于或等于 value2,则执行分支操作。value2 and value1 are popped from the stack; if value1 is less than or equal to value2, the branch operation is performed.

如果 value1 小于或等于 value2,则 ble 指令将控制转移到指定的目标指令。The ble instruction transfers control to the specified target instruction if value1 is less than or equal to value2. 此效果等同于执行 cgt 指令(cgt.un 对于浮点数),后跟一个 brfalse 分支到特定目标指令。The effect is identical to performing a cgt instruction (cgt.un for floats) followed by a brfalse branch to the specific target instruction. 目标指令表示为与当前指令后面的指令开头之间的4字节有符号偏移量。The target instruction is represented as a 4-byte signed offset from the beginning of the instruction following the current instruction.

如果目标指令具有一个或多个前缀代码,则只能将控制转移到其中的第一个前缀。If the target instruction has one or more prefix codes, control can only be transferred to the first of these prefixes. 此指令不能执行控制传入和传出 trycatchfilterfinally 块的控制。Control transfers into and out of try, catch, filter, and finally blocks cannot be performed by this instruction.

以下 Emit 方法重载可以使用 ble 操作码:The following Emit method overload can use the ble opcode:

  • ILGenerator (操作码、标签)ILGenerator.Emit(OpCode, Label)