Danh sách lệnh CIL

bài viết danh sách Wikimedia

Dưới đây là danh sách các lệnh trong tập lệnh của bytecode ngôn ngữ trung gian dùng chung.

Opcode Lệnh Mô tả Kiểu lệnh
0x58 add Cộng hai giá trị, trả về một giá trị mới Lệnh cơ bản
0xD6 add.ovf Cộng các số nguyên có dấu và kiểm tra overflow. Lệnh cơ bản
0xD7 add.ovf.un Cộng các số nguyên không dấu và kiểm tra overflow. Lệnh cơ bản
0x5F and Bitwise AND của hai giá trị nguyên, trả về một giá trị tích phân. Lệnh cơ bản
0xFE 0x00 arglist Trả về argument list cho phương thức hiện tại. Lệnh cơ bản
0x3B beq <int32 (target)> Rẽ nhánh (Branch) nếu bằng nhau (equal). Lệnh cơ bản
0x2E beq.s <int8 (target)> Rẽ nhánh (Branch) nếu bằng nhau (equal, short form). Lệnh cơ bản
0x3C bge <int32 (target)> Rẽ nhánh nếu lớn hơn hoặc bằng (Branch to target if greater than or equal to). Lệnh cơ bản
0x2F bge.s <int8 (target)> Rẽ nhánh nếu lớn hơn hoặc bằng, dạng ngắn (Branch to target if greater than or equal to, short form). Lệnh cơ bản
0x41 bge.un <int32 (target)> Rẽ nhánh nếu lớn hơn hoặc bằng (không dấu hoặc không theo trật tự) Branch to target if greater than or equal to (unsigned or unordered). Lệnh cơ bản
0x34 bge.un.s <int8 (target)> Rẽ nhánh nếu lớn hơn hoặc bằng (không dấu hoặc không theo trật tự), dạng ngắn (Branch to target if greater than or equal to (unsigned or unordered), short form). Lệnh cơ bản
0x3D bgt <int32 (target)> Rẽ nhánh nếu lớn hơn (Branch to target if greater than). Lệnh cơ bản
0x30 bgt.s <int8 (target)> Rẽ nhánh nếu lớn hơn, dạng ngắn (Branch to target if greater than, short form). Lệnh cơ bản
0x42 bgt.un <int32 (target)> Rẽ nhánh nếu lớn hơn (không dấu hoặc không theo thứ tự) Lệnh cơ bản
0x35 bgt.un.s <int8 (target)> Rẽ nhánh nếu lớn hơn (không dấu, hoặc không theo thứ tự), dạng ngắn, Lệnh cơ bản
0x3E ble <int32 (target)> Rẽ nhánh nếu bé hơn hoặc bằng. Lệnh cơ bản
0x31 ble.s <int8 (target)> Rẽ nhánh nếu bé hơn hoặc bằng, dạng ngắn. Lệnh cơ bản
0x43 ble.un <int32 (target)> Rẽ nhánh nếu bé hơn hoặc bằng (không dấu hoặc không theo thứ tự). Lệnh cơ bản
0x36 ble.un.s <int8 (target)> Rẽ nhánh nếu bé hơn hoặc bằng (không dấu hoặc không theo thứ tự), dạng ngắn. Lệnh cơ bản
0x3F blt <int32 (target)> Rẽ nhánh nếu bé hơn. Lệnh cơ bản
0x32 blt.s <int8 (target)> Rẽ nhánh nếu bé hơn, dạng ngắn. Lệnh cơ bản
0x44 blt.un <int32 (target)> Rẽ nhánh nếu bé hơn (không dấu hoặc không có thứ tự). Lệnh cơ bản
0x37 blt.un.s <int8 (target)> Rẽ nhánh nếu bé hơn (không dấu hoặc không có thứ tự), dạng ngắn. Lệnh cơ bản
0x40 bne.un <int32 (target)> Rẽ nhánh nếu không bằng hoặc không theo thứ tự. Lệnh cơ bản
0x33 bne.un.s <int8 (target)> Rẽ nhánh nếu không bằng hoặc không theo thứ tự, dạng ngắn. Lệnh cơ bản
0x8C box <typeTok> Chuyển một giá trị boxable thành dạng boxed. Lệnh mô hình đối tượng
0x38 br <int32 (target)> Rẽ nhánh. Lệnh cơ bản
0x2B br.s <int8 (target)> Rẽ nhánh, dạng ngắn. Lệnh cơ bản
0x01 break Thông báo cho debugger rằng đã tới breakpoint. Lệnh cơ bản
0x39 brfalse <int32 (target)> Rẽ nhánh nếu giá trị là zero (false). Lệnh cơ bản
0x2C brfalse.s <int8 (target)> Rẽ nhánh nếu giá trị là zero (false), dạng ngắn. Lệnh cơ bản
0x3A brinst <int32 (target)> Rẽ nhánh nếu giá trị tham chiếu là một đối tượng không null (alias hoặc brtrue). Lệnh cơ bản
0x2D brinst.s <int8 (target)> Rẽ nhánh nếu giá trị tham chiếu là một đối tượng không null (alias hoặc brtrue), dạng ngắn. Lệnh cơ bản
0x39 brnull <int32 (target)> Rẽ nhánh nếu giá trị là null. Lệnh cơ bản
0x2C brnull.s <int8 (target)> Rẽ nhánh nếu giá trị là null, dạng ngắn. Lệnh cơ bản
0x3A brtrue <int32 (target)> Rẽ nhánh nếu giá trị khác zero. Lệnh cơ bản
0x2D brtrue.s <int8 (target)> Rẽ nhánh nếu giá trị khác zero, dạng ngắn. Lệnh cơ bản
0x39 brzero <int32 (target)> Rẽ nhánh nếu giá trị là zero. Lệnh cơ bản
0x2C brzero.s <int8 (target)> Rẽ nhánh nếu giá trị là zero, dạng ngắn. Lệnh cơ bản
0x28 call <method> Gọi phương thức được định nghĩa bởi phương thức. Lệnh cơ bản
0x29 calli <callsitedescr> Gọi một phương thức trong stack với các tham số mô tả bởi callsitedescr. Lệnh cơ bản
0x6F callvirt <method> Gọi một phương thức gắn với một đối tượng. Lệnh mô hình đối tượng
0x74 castclass <class> Cast một đối tượng về một lớp. Lệnh mô hình đối tượng
0xFE 0x01 ceq Push 1 (kiểu int32) nếu giá trị 1 bằng với giá trị 2, và push 0 nếu ngược lại. Lệnh cơ bản
0xFE 0x02 cgt Push 1 (kiểu int32) nếu giá trị 1 > giá trị 2, nếu không thì push 0. Lệnh cơ bản
0xFE 0x03 cgt.un Push 1 (kiểu int32) nếu giá trị 1> giá trị 2, không dấu hoặc không theo thứ tự, nếu không thì push 0. Lệnh cơ bản
0xC3 ckfinite Ném lỗi ArithmeticException nếu giá trị không phải là số hữu hạn. Lệnh cơ bản
0xFE 0x04 clt Push 1 (kiểu int32) nếu giá trị 1 < giá trị 2, push 0 trong các trường hợp khác. Lệnh cơ bản
0xFE 0x05 clt.un Push 1 (kiểu int32) nếu giá trị 1 < giá trị 2, không dấu hoặc không theo thứ tự, và push 0 trong các trường hợp khác. Lệnh cơ bản
0xFE 0x16 constrained. <thisType> Gọi một phương thức virtual trong một kiểu ràng buộc thành kiểu T. Tiền tố của lệnh
0xD3 conv.i Chuyển đổi về dạng native int và đẩy vào stack. Lệnh cơ bản
0x67 conv.i1 Chuyển đổi về dạng int8, đẩy int32 vào stack. Lệnh cơ bản
0x68 conv.i2 Chuyển về dạng int16, đẩy int32 vào stack. Lệnh cơ bản
0x69 conv.i4 Chuyển về dạng int32, đẩy int32 vào stack. Lệnh cơ bản
0x6A conv.i8 Chuyển về dạng int64, đẩy int64 vào stack. Lệnh cơ bản
0xD4 conv.ovf.i Chuyển về dạng native int, đưa vào stack và ném lỗi nếu overflow.. Lệnh cơ bản
0x8A conv.ovf.i.un Chuyển số nguyên không dấu qua dạng native int, đưa vào stack và ném lỗi nếu overflow. Lệnh
0xB3 conv.ovf.i1 Chuyển qua dạng int8, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh
0x82 conv.ovf.i1.un Chuyển số nguyên không dấu qua dạng int8, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xB5 conv.ovf.i2 Chuyển qua dạng int16, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0x83 conv.ovf.i2.un Chuyển số nguyên không dấu qua dạng int16, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xB7 conv.ovf.i4 Chuyển qua dạng int32, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0x84 conv.ovf.i4.un Chuyển số nguyên không dấu qua dạng int32, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xB9 conv.ovf.i8 Chuyển qua dạng int64, đưa int64 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0x85 conv.ovf.i8.un Chuyển số nguyên không dấu qua dạng int64, đưa int64 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xD5 conv.ovf.u Chuyển qua dạng native int, đưa vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0x8B conv.ovf.u.un Chuyển số nguyên không dấu qua native int, đưa vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xB4 conv.ovf.u1 Chuyển về số nguyên int8 không dấu, đưa int32 vào stack và ném lỗi nếu overflow.  Lệnh cơ bản
0x86 conv.ovf.u1.un Chuyển số không dấu về int8 không dấu, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xB6 conv.ovf.u2 Chuyển về số int16 không dấu, đưa int32 vào stack và ném lỗi nếu overflow.
Lệnh cơ bản
0x87 conv.ovf.u2.un Chuyển số không dấu qua dạng int16 không dấu, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xB8 conv.ovf.u4 Chuyển về dạng int32 không dấu, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0x88 conv.ovf.u4.un Chuyển số không dấu về int32 không dấu, đưa int32 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0xBA conv.ovf.u8 Chuyển về int64 không dấu, đưa int64 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0x89 conv.ovf.u8.un Chuyển số không dấu về int64 không dấu, đưa int64 vào stack và ném lỗi nếu overflow. Lệnh cơ bản
0x76 conv.r.un Chuyển số nguyên không dấu thành số thực, đẩy F vào stack. Lệnh
0x6B conv.r4 Chuyển về float32, đẩy F vào stack. Lệnh
0x6C conv.r8 Chuyển về float64, đẩy F vào stack. Lệnh cơ bản
0xE0 conv.u Chuyển về số nguyên không dấu dạng native và đẩy vào stack. Lệnh
0xD2 conv.u1 Chuyển về dạng int8 không dấu, đẩy int32 vào stack. Lệnh
0xD1 conv.u2 Chuyển về dạng int16 không dấu, đẩy int32 vào stack. Lệnh
0x6D conv.u4 Chuyển về dạng int32 không dấu, đẩy int32 vào stack. Lệnh cơ bản
0x6E conv.u8 Chuyển về dạng int64 không dấu, đẩy int64 vào stack. Lệnh cơ bản
0xFE 0x17 cpblk Sao chép dữ liệu từ bộ nhớ qua bộ nhớ. Lệnh cơ bản
0x70 cpobj <typeTok> Sao chép một kiểu giá trị từ src vào dest. Lệnh mô hình đối tượng
0x5B div Chai hai giá trị để trả về một kết quả số tròn hoặc dấu chấm động. Lệnh cơ bản
0x5C div.un Chia hai giá trị không dấu, trả về kết quả. Lệnh cơ bản
0x25 dup Nhân đôi giá trị ở phía trên cùng của stack. Lệnh cơ bản
0xDC endfault Kết thúc phần lỗi của một khối ngoại lệ. Lệnh cơ bản
0xFE 0x11 endfilter Kết thúc một phần lọc xử lý ngoại lệ. Lệnh cơ bản
0xDC endfinally Kết thúc phần finally của một khối ngoại lệ. Lệnh cơ bản
0xFE 0x18 initblk Đặt tất cả byte vào một khối trong bộ nhớ cho một giá trị cho trước. Lệnh cơ bản
0xFE 0x15 initobj <typeTok> Cài đặt giá trị tại địa chỉ đích. Lệnh mô hình đối tượng
0x75 isinst <class> Kiểm tra nếu đối tược có phải là một instance của một lớp không, trả về null hoặc một instance của lớp đó. Lệnh mô hình đối tượng
0x27 jmp <method> Thoát khỏi phương thức hiện tại và nhảy tới phương thức đã xác định. Lệnh cơ bản
0xFE 0x09 ldarg <uint16 (num)> Tải tham số đã được đánh số vào stack. Lệnh cơ bản
0x02 ldarg.0 Tải tham số 0 vào stack. Lệnh cơ bản
0x03 ldarg.1 Tải tham số 1 vào stack.
Lệnh cơ bản
0x04 ldarg.2 Tải tham số 2 vào stack. Lệnh cơ bản
0x05 ldarg.3 Tải tham số 3 vào stack. Lệnh cơ bản
0x0E ldarg.s <uint8 (num)> Tải tham số đã được đánh số vào stack, dạng ngắn. Lệnh cơ bản
0xFE 0x0A ldarga <uint16 (argNum)> Nạp địa chỉ argNum của tham số. Lệnh cơ bản
0x0F ldarga.s <uint8 (argNum)> Nạp địa chỉ argNum của tham số, dạng ngắn. Lệnh cơ bản
0x20 ldc.i4 <int32 (num)> Đẩy số int32 vào stack dưới dạng int32. Lệnh
0x16 ldc.i4.0 Đẩy 0 vào stack ở dạng int32. Lệnh cơ bản
0x17 ldc.i4.1 Đẩy 1 vào stack ở dạng int32. Lệnh cơ bản
0x18 ldc.i4.2 Đẩy 2 vào stack ở dạng int32. Lệnh cơ bản
0x19 ldc.i4.3 Đẩy 3 vào stack ở dạng int32. Lệnh cơ bản
0x1A ldc.i4.4 Đẩy 4 vào stack ở dạng int32. Lệnh cơ bản
0x1B ldc.i4.5 Đẩy 5 vào stack ở dạng int32. Lệnh cơ bản
0x1C ldc.i4.6 Đẩy 6 vào stack ở dạng int32. Lệnh cơ bản
0x1D ldc.i4.7 Đẩy 7 vào stack ở dạng int32. Lệnh cơ bản
0x1E ldc.i4.8 Đẩy 8 vào stack ở dạng int32. Lệnh cơ bản
0x15 ldc.i4.m1 Đẩy -1 vào stack ở dạng int32. Lệnh cơ bản
0x15 ldc.i4.M1 Đẩy -1 vào stack ở dạng int32. (dạng thay thế cho ldc.i4.m1). Lệnh cơ bản
0x1F ldc.i4.s <int8 (num)> Đẩy số dạng int32 vào stack, dạng ngắn. Lệnh cơ bản
0x21 ldc.i8 <int64 (num)> Đẩy số kiểu int64 vào stack. Lệnh
0x22 ldc.r4 <float32 (num)> Đẩy số kiểu float32 vào stack ở dạng F. Lệnh cơ bản
0x23 ldc.r8 <float64 (num)> Đẩy số kiểu float64 vào stack ở dạng F. Lệnh cơ bản
0xA3 ldelem <typeTok> Tải thành phần tại chỉ số đã cho vào phía trên cùng stack. Lệnh mô hình
0x97 ldelem.i Tải thành phần kiểu native int vào phía trên cùng stack ở dạng native int. Lệnh mô hình đối tượng
0x90 ldelem.i1 Tải thành phần kiểu int8 tại chỉ số đã cho vào phía trên cùng stack ở dạng int32. Lệnh mô hình
0x92 ldelem.i2 Tải thành phần kiểu int16 tại chỉ số đã cho vào phía trên cùng stack ở dạng int32. Lệnh mô hình đối tượng
0x94 ldelem.i4 Tải thành phần kiểu int32 tại chỉ số đã cho vào phía trên cùng stack ở dạng int32. Lệnh mô hình đối tượng
0x96 ldelem.i8 Tải thành phần kiểu int64 tại chỉ số đã cho vào phía trên cùng stack ở dạng int64. Lệnh mô hình đối tượng
0x98 ldelem.r4 Tải thành phần kiểu float32 tại chỉ số đã cho vào phía trên cùng stack dưới dạng F. Lệnh mô hình đối tượng
0x99 ldelem.r8 Tải thành phần kiểu float64 tại chỉ số đã cho vào phía trên cùng stack dưới dạng F. Lệnh mô hình đối tượng
0x9A ldelem.ref Tải thành phần kiểu O tại chỉ số đã cho vào phía trên cùng stack dưới dạng O. Kiểu của O trùng với kiểu thành phần của mảng đã được đẩy vào stack CIL. Lệnh mô hình
0x91 ldelem.u1 Tải thành phần kiểu int8 tại chỉ số đã cho vào phía trên cùng stack dưới dạng int32. Lệnh mô hình đối tượng
0x93 ldelem.u2 Tải thành phần kiểu int16 tại chỉ số đã cho vào phía trên cùng stack dưới dạng int32. Lệnh mô hình đối tượng
0x95 ldelem.u4 Tải thành phần kiểu int32 tại chỉ số đã cho vào phía trên cùng stack dưới dạng int32. Lệnh mô hình đối tượng
0x96 ldelem.u8 Tải thành phần kiểu int64 tại chỉ số đã cho vào phía trên cùng stack dưới dạng int64. (thay thế cho ldelem.i8) Lệnh mô hình đối tượng
0x8F ldelema <class> Tải địa chỉ của thành phần tại chỉ số đã cho vào phía trên cùng stack. Lệnh mô hình
0x7B ldfld <field> Đẩy giá trị của field vào stack. Lệnh mô hình đối tượng
0x7C ldflda <field> Đẩy địa chỉ của field vào stack. Lệnh mô hình đối tượng
0xFE 0x06 ldftn <method> Đẩy con trỏ của phương thức được gọi vào stack. Lệnh cơ bản
0x4D ldind.i Gián tiếp tải giá trị kiểu native int vào stack Lệnh cơ bản
0x46 ldind.i1 Gián tiếp tải giá trị kiểu int8 vào stack dưới dạng int32. Lệnh cơ bản
0x48 ldind.i2 Gián tiếp tải giá trị kiểu int16 vào stack dưới dạng int32. Lệnh cơ bản
0x4A ldind.i4 Gián tiếp tải giá trị kiểu int32 vào stack dưới dạng int32. Lệnh cơ bản
0x4C ldind.i8 Gián tiếp tải giá trị kiểu int64 vào stack dưới dạng int64. Lệnh cơ bản
0x4E ldind.r4 Gián tiếp tải giá trị kiểu float32 vào stack dưới dạng F. Lệnh cơ bản
0x4F ldind.r8 Gián tiếp tải giá trị kiểu float64 vào stack dưới dạng F. Lệnh cơ bản
0x50 ldind.ref Gián tiếp tải giá trị kiểu đối tượng vào stack dưới dạng O. Lệnh cơ bản
0x47 ldind.u1 Gián tiếp tải giá trị kiểu int8 không dấu vào stack dưới dạng int32. Lệnh cơ bản
0x49 ldind.u2 Gián tiếp tải giá trị kiểu int16 không dấu vào stack dưới dạng int32. Lệnh cơ bản
0x4B ldind.u4 Gián tiếp tải giá trị kiểu int32 không dấu vào stack dưới dạng int32. Lệnh cơ bản
0x4C ldind.u8 Gián tiếp tải giá trị kiểu int64 không dấu vào stack dưới dạng int64. (thay cho ldind.i8). Lệnh cơ bản
0x8E ldlen Đẩy độ dài của một mảng vào stack. Lệnh mô hình đối tượng
0xFE 0x0C ldloc <uint16 (indx)> Tải biến cục bộ của chỉ số indx vào stack. Lệnh
0x06 ldloc.0 Tải biến cục bộ 0 vào stack. Lệnh
0x07 ldloc.1 Tải biến cục bộ 1 vào stack. Lệnh cơ bản
0x08 ldloc.2 Tải biến cục bộ 2 vào stack. Lệnh cơ bản
0x09 ldloc.3 Tải biến cục bộ 3 vào stack. Lệnh cơ bản
0x11 ldloc.s <uint8 (indx)> Tải biến cục bộ tại chỉ số indx vào stack, dạng ngắn. Lệnh
0xFE 0x0D ldloca <uint16 (indx)> Tải địa chỉ của biến cục bộ có chỉ số indx. Lệnh
0x12 ldloca.s <uint8 (indx)> Tải địa chỉ có biến cục bộ với chỉ số indx, dạng ngắn. Lệnh cơ bản
0x14 ldnull Đẩy tham chiếu null vào stack. Lệnh cơ bản
0x71 ldobj <typeTok> Sao chép giá trị đã lưu tại địa chỉ src vào stack. Lệnh mô hình
0x7E ldsfld <field> Đẩy giá trị của field vào stack. Lệnh mô hình đối tượng
0x7F ldsflda <field> Đẩy địa chỉ của static field, field vào stack. Lệnh mô hình
0x72 ldstr <string> Đẩy một đối tượng string cho literal string. Lệnh mô hình đối tượng
0xD0 ldtoken <token> Chuyển token của metadata cho đại diện trong thời gian chạy. Lệnh mô hình đối tượng
0xFE 0x07 ldvirtftn <method> Đẩy địa chỉ của phương thức ảo vào stack. Lệnh mô hình
0xDD leave <int32 (target)> Thoát khỏi một vùng code được bảo vệ. Lệnh
0xDE leave.s <int8 (target)> Thoát khỏi một vùng code được bảo vệ, dạng ngắn. Lệnh cơ bản
0xFE 0x0F localloc Chỉ định không gian từ vùng pool bộ nhớ cục bộ. Lệnh cơ bản
0xC6 mkrefany <class> Đẩy một tham chiếu tới ptr hoặc lớp kiểu vào stack. Lệnh mô hình đối tượng
0x5A mul Nhân các giá trị. Lệnh cơ bản
0xD8 mul.ovf Nhân các giá trị nguyên có dấu. Kết quả có dấu sẽ có cùng kích cỡ. Lệnh cơ bản
0xD9 mul.ovf Nhân các số nguyên không dấu. Kết quả không dấu sẽ có cùng kích cỡ. Lệnh cơ bản
0x65 neg Giá trị âm. Lệnh cơ bản
0x8D newarr <etype> Tạo một mảng mới với các thành phần kiểu etype. Lệnh mô hình đối tượng
0x73 newobj <ctor> Chỉ định một đối tượng chưa khởi tạo, hoặc một kiểu giá trị và gọi ctor. Lệnh mô hình đối tượng
0xFE 0x19
no. {
 typecheck,
 rangecheck,
 nullcheck
 }
Việc kiểm tra lỗi đã biết thông thường được thực hiện ở dạng một phần của việc thực thi các chuỗi lệnh có thể được bỏ qua. Tiền tố của lệnh
0x00 nop Không làm gì cả (No operation). Lệnh cơ bản
0x66 not Bitwise bổ sung (not). Lệnh cơ bản
0x60 or Bitwise OR hoặc hai giá trị nguyên, trả về một số nguyên. Lệnh cơ bản
0x26 pop Đẩy (pop) giá trị ra khỏi stack. Lệnh cơ bản
0xFE 0x1E readonly. Chỉ định rằng thao tác địa chỉ mảng tiếp theo không thực hiện kiểm tra kiểu nào trong thời gian chạy, và sẽ trả về một con trỏ kiểm soát được. Tiền tố của lệnh
0xFE 0x1D refanytype Đẩy token được lưu trong kiểu tham chiếu. Lệnh mô hình đối tượng
0xC2 refanyval <type> Đẩy địa chỉ lưu trọng kiểu tham chiếu. Lệnh mô hình đối tượng
0x5D rem Phần dư (remainder) khi chia một giá trị bởi một giá trị khác. Lệnh cơ bản
0x5E rem.un Phần dư (remainder) khi chia một giá trị không dấu bởi một giá trị khác.
Lệnh cơ bản
0x2A ret Trả về (return) từ một phương thức, thường đi kèm với một giá trị. Lệnh cơ bản
0xFE 0x1A rethrow Ném lại (rethrow) ngoại lệ hiện tại. Lệnh mô hình
0x62 shl Dịch chuyển (shift) một số nguyên qua trái (left), dịch chuyển ở zero, trả về một số nguyên. Lệnh cơ bản
0x63 shr Dịch chuyển (shift) một số nguyên qua phải (right), dịch ở phần dấu, trả về một số nguyên.
Lệnh cơ bản
0x64 shr.un Dịch chuyển một số nguyên qua phải,  dịch ở phần zero, trả về một số nguyên. Lệnh cơ bản
0xFE 0x1C sizeof <typeTok> Đẩy một kích cỡ, ở dạng byte, của kiểu int32 không dấu. Lệnh mô hình đối tượng
0xFE 0x0B starg <uint16 (num)> Lưu trữ (store) giá trị vào tham số (argument) đã được đánh số là num. Lệnh
0x10 starg.s <uint8 (num)> Lưu trữ (store) giá trị vào tham số (argument) đã được đánh số là num, dạng ngắn.
Lệnh cơ bản
0xA4 stelem <typeTok> Thay thế các thành phần của mảng tại chỉ số đã cho với một giá trị trong stack. Lệnh mô hình đối tượng
0x9B stelem.i Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị i trong stack. Lệnh mô hình đối tượng
0x9C stelem.i1 Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị int8 trong stack. Lệnh mô hình đối tượng
0x9D stelem.i2 Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị int16 trong stack. Lệnh mô hình đối tượng
0x9E stelem.i4 Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị int32 trong stack. Lệnh mô hình đối tượng
0x9F stelem.i8 Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị int64 trong stack. Lệnh mô hình đối tượng
0xA0 stelem.r4 Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị float32 trong stack. Lệnh mô hình đối tượng
0xA1 stelem.r8 Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị float64 trong stack. Lệnh mô hình đối tượng
0xA2 stelem.ref Thay thế các thành phần của mảng tại chỉ số đã cho với giá trị ref trong stack. Lệnh mô hình đối tượng
0x7D stfld <field> Thay thế giá trị của field trong đối tượng với một giá trị. Lệnh mô hình đối tượng
0xDF stind.i Lưu trữ giá trị của kiểu native int vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0x52 stind.i1 Lưu trữ giá trị của kiểu int8 vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0x53 stind.i2 Lưu trữ giá trị của kiểu int16 vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0x54 stind.i4 Lưu trữ giá trị của kiểu int32 vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0x55 stind.i8 Lưu trữ giá trị của kiểu int64 vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0x56 stind.r4 Lưu trữ giá trị của kiểu float32 vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0x57 stind.r8 Lưu trữ giá trị của kiểu float64 vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0x51 stind.ref Lưu trữ giá trị của kiểu đối tượng obj vào bộ nhớ dưới dạng địa chỉ. Lệnh cơ bản
0xFE 0x0E stloc <uint16 (indx)> Đẩy giá trị trong stack vào biến cục bộ indx.. Lệnh cơ bản
0x0A stloc.0 Đẩy giá trị trong stack vào biến cục bộ 0. Lệnh cơ bản
0x0B stloc.1 Đẩy giá trị trong stack vào biến cục bộ 1. Lệnh cơ bản
0x0C stloc.2 Đẩy giá trị trong stack vào biến cục bộ 2. Lệnh cơ bản
0x0D stloc.3 Đẩy giá trị trong stack vào biến cục bộ 3. Lệnh cơ bản
0x13 stloc.s <uint8 (indx)> Đẩy giá trị trong stack vào biến cục bộ indx, dạng ngắn. Lệnh
0x81 stobj <typeTok> Lưu trữ giá trị của kiểu typeTok vào một địa chỉ. Lệnh mô hình đối tượng
0x80 stsfld <field> Thay thế giá trị của field với val. Lệnh mô hình đối tượng
0x59 sub Trừ(subtract) giá trị 2 từ giá trị 1, trả về kết quả. Lệnh cơ bản
0xDA sub.ovf Trừ một native int từ một native int. Kết quả nhận được có kích cỡ tương đương. Lệnh cơ bản
0xDB sub.ovf.un Trừ một native int không dấu từ một native int không dấu, kết quả không dấu nhận được có kích cỡ tương đương. Lệnh cơ bản
0x45 switch <uint32, int32, int32 (t1..tN)> Nhảy tới một trong n giá trị. Lệnh cơ bản
0xFE 0x14 tail. Việc gọi hàm tiếp theo sẽ kết thúc phương thức hiện tại. Tiền tố của lệnh
0x7A throw Ném (throw) một ngoại lệ. Lệnh mô hình đối tượng
0xFE 0x12 unaligned. (alignment) Lệnh con trỏ tiếp theo có thể được unaligned.
Tiền tố của lệnh
0x79 unbox <valuetype> Trích xuất một kiểu giá trị từ obj (dạng boxed). Lệnh mô hình đối tượng
0xA5 unbox.any <typeTok> Trích xuất một kiểu giá trị từ obj. Lệnh mô hình đối tượng
0xFE 0x13 volatile. Tham khảo con trỏ tham chiếu tiếp theo là volatile
Tiền tố của lệnh
0x61 xor Bitwise XOR của các giá trị nguyên, trả về một số nguyên. Lệnh cơ bản

Đọc thêm sửa

Tham khảo sửa

Tham khảo sửa