Danh sách lệnh CIL

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.
 Các lệnh cơ sở tạo thành một tập lệnh Turing-hoàn-chỉnh.
 Các lệnh mô hình đối tượng cung cấp phiên bản hiện thực hóa của Hệ thống kiểu dữ liệu dùng chung
Opcode LệnhMô tảKiểu lệnh0x58addCộng hai giá trị, trả về một giá trị mớiLệnh cơ bản0xD6add.ovfCộng các số nguyên có dấu và kiểm tra overflow.Lệnh cơ bản0xD7add.ovf.unCộng các số nguyên không dấu và kiểm tra overflow.Lệnh cơ bản0x5FandBitwise AND của hai giá trị nguyên, trả về một giá trị tích phân.Lệnh cơ bản0xFE 0x00arglistTrả về argument list cho phương thức hiện tại.Lệnh cơ bản0x3Bbeq <int32 (target)>Rẽ nhánh (Branch) nếu bằng nhau (equal).Lệnh cơ bản0x2Ebeq.s <int8 (target)>Rẽ nhánh (Branch) nếu bằng nhau (equal, short form).Lệnh cơ bản0x3Cbge <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ản0x2Fbge.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ản0x41bge.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ản0x34bge.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ản0x3Dbgt <int32 (target)>Rẽ nhánh nếu lớn hơn (Branch to target if greater than).Lệnh cơ bản0x30bgt.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ản0x42bgt.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ản0x35bgt.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ản0x3Eble <int32 (target)>Rẽ nhánh nếu bé hơn hoặc bằng.Lệnh cơ bản0x31ble.s <int8 (target)>Rẽ nhánh nếu bé hơn hoặc bằng, dạng ngắn.Lệnh cơ bản0x43ble.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ản0x36ble.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ản0x3Fblt <int32 (target)>Rẽ nhánh nếu bé hơn.Lệnh cơ bản0x32blt.s <int8 (target)>Rẽ nhánh nếu bé hơn, dạng ngắn.Lệnh cơ bản0x44blt.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ản0x37blt.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ản0x40bne.un <int32 (target)>Rẽ nhánh nếu không bằng hoặc không theo thứ tự.Lệnh cơ bản0x33bne.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ản0x8Cbox <typeTok>Chuyển một giá trị boxable thành dạng boxed.Lệnh mô hình đối tượng0x38br <int32 (target)>Rẽ nhánh.Lệnh cơ bản0x2Bbr.s <int8 (target)>Rẽ nhánh, dạng ngắn.Lệnh cơ bản0x01breakThông báo cho debugger rằng đã tới breakpoint.Lệnh cơ bản0x39brfalse <int32 (target)>Rẽ nhánh nếu giá trị là zero (false).Lệnh cơ bản0x2Cbrfalse.s <int8 (target)>Rẽ nhánh nếu giá trị là zero (false), dạng ngắn.Lệnh cơ bản0x3Abrinst <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ản0x2Dbrinst.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ản0x39brnull <int32 (target)>Rẽ nhánh nếu giá trị là null.Lệnh cơ bản0x2Cbrnull.s <int8 (target)>Rẽ nhánh nếu giá trị là null, dạng ngắn.Lệnh cơ bản0x3Abrtrue <int32 (target)>Rẽ nhánh nếu giá trị khác zero.Lệnh cơ bản0x2Dbrtrue.s <int8 (target)>Rẽ nhánh nếu giá trị khác zero, dạng ngắn.Lệnh cơ bản0x39brzero <int32 (target)>Rẽ nhánh nếu giá trị là zero.Lệnh cơ bản0x2Cbrzero.s <int8 (target)>Rẽ nhánh nếu giá trị là zero, dạng ngắn.Lệnh cơ bản0x28call <method>Gọi phương thức được định nghĩa bởi phương thức.Lệnh cơ bản0x29calli <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ản0x6Fcallvirt <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ượng0x74castclass <class>Cast một đối tượng về một lớp.Lệnh mô hình đối tượng0xFE 0x01ceqPush 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ản0xFE 0x02cgtPush 1 (kiểu int32) nếu giá trị 1 > giá trị 2, nếu không thì push 0.Lệnh cơ bản0xFE 0x03cgt.unPush 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ản0xC3ckfiniteNém lỗi ArithmeticException nếu giá trị không phải là số hữu hạn.Lệnh cơ bản0xFE 0x04cltPush 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ản0xFE 0x05clt.unPush 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ản0xFE 0x16constrained. <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ệnh0xD3conv.iChuyển đổi về dạng native int và đẩy vào stack.Lệnh cơ bản0x67conv.i1Chuyển đổi về dạng int8, đẩy int32 vào stack.Lệnh cơ bản0x68conv.i2Chuyển về dạng int16, đẩy int32 vào stack.Lệnh cơ bản0x69conv.i4Chuyển về dạng int32, đẩy int32 vào stack.Lệnh cơ bản0x6Aconv.i8Chuyển về dạng int64, đẩy int64 vào stack.Lệnh cơ bản0xD4conv.ovf.iChuyển về dạng native int, đưa vào stack và ném lỗi nếu overflow..Lệnh cơ bản0x8Aconv.ovf.i.unChuyể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ệnh0xB3conv.ovf.i1Chuyển qua dạng int8, đưa int32 vào stack và ném lỗi nếu overflow.Lệnh0x82conv.ovf.i1.unChuyể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ản0xB5conv.ovf.i2Chuyển qua dạng int16, đưa int32 vào stack và ném lỗi nếu overflow.Lệnh cơ bản0x83conv.ovf.i2.unChuyể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ản0xB7conv.ovf.i4Chuyển qua dạng int32, đưa int32 vào stack và ném lỗi nếu overflow.Lệnh cơ bản0x84conv.ovf.i4.unChuyể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ản0xB9conv.ovf.i8Chuyển qua dạng int64, đưa int64 vào stack và ném lỗi nếu overflow.Lệnh cơ bản0x85conv.ovf.i8.unChuyể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ản0xD5conv.ovf.uChuyển qua dạng native int, đưa vào stack và ném lỗi nếu overflow.Lệnh cơ bản0x8Bconv.ovf.u.unChuyể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ản0xB4conv.ovf.u1Chuyể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ản0x86conv.ovf.u1.unChuyể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ản0xB6conv.ovf.u2Chuyể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ản0x87conv.ovf.u2.unChuyể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ản0xB8conv.ovf.u4Chuyể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ản0x88conv.ovf.u4.unChuyể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ản0xBAconv.ovf.u8Chuyển về int64 không dấu, đưa int64 vào stack và ném lỗi nếu overflow.Lệnh cơ bản0x89conv.ovf.u8.unChuyể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ản0x76conv.r.unChuyển số nguyên không dấu thành số thực, đẩy F vào stack.Lệnh0x6Bconv.r4Chuyển về float32, đẩy F vào stack.Lệnh0x6Cconv.r8Chuyển về float64, đẩy F vào stack.Lệnh cơ bản0xE0conv.uChuyển về số nguyên không dấu dạng native và đẩy vào stack.Lệnh0xD2conv.u1Chuyển về dạng int8 không dấu, đẩy int32 vào stack.Lệnh0xD1conv.u2Chuyển về dạng int16 không dấu, đẩy int32 vào stack.Lệnh0x6Dconv.u4Chuyển về dạng int32 không dấu, đẩy int32 vào stack.Lệnh cơ bản0x6Econv.u8Chuyển về dạng int64 không dấu, đẩy int64 vào stack.Lệnh cơ bản0xFE 0x17cpblkSao chép dữ liệu từ bộ nhớ qua bộ nhớ.Lệnh cơ bản0x70cpobj <typeTok> Sao chép một kiểu giá trị từ src vào dest.Lệnh mô hình đối tượng0x5BdivChai hai giá trị để trả về một kết quả số tròn hoặc dấu chấm động.Lệnh cơ bản0x5Cdiv.unChia hai giá trị không dấu, trả về kết quả.Lệnh cơ bản0x25dupNhân đôi giá trị ở phía trên cùng của stack.Lệnh cơ bản0xDCendfaultKết thúc phần lỗi của một khối ngoại lệ.Lệnh cơ bản0xFE 0x11endfilterKết thúc một phần lọc xử lý ngoại lệ.Lệnh cơ bản0xDCendfinallyKết thúc phần finally của một khối ngoại lệ.Lệnh cơ bản0xFE 0x18initblkĐặ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ản0xFE 0x15initobj <typeTok> Cài đặt giá trị tại địa chỉ đích.Lệnh mô hình đối tượng0x75isinst <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ượng0x27jmp <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ản0xFE 0x09ldarg <uint16 (num)>Tải tham số đã được đánh số vào stack.Lệnh cơ bản0x02ldarg.0Tải tham số 0 vào stack.Lệnh cơ bản0x03ldarg.1Tải tham số 1 vào stack.Lệnh cơ bản0x04ldarg.2Tải tham số 2 vào stack.Lệnh cơ bản0x05ldarg.3Tải tham số 3 vào stack.Lệnh cơ bản0x0Eldarg.s <uint8 (num)>Tải tham số đã được đánh số vào stack, dạng ngắn.Lệnh cơ bản0xFE 0x0Aldarga <uint16 (argNum)>Nạp địa chỉ argNum của tham số.Lệnh cơ bản0x0Fldarga.s <uint8 (argNum)>Nạp địa chỉ argNum của tham số, dạng ngắn.Lệnh cơ bản0x20ldc.i4 <int32 (num)>Đẩy số int32 vào stack dưới dạng int32.Lệnh0x16ldc.i4.0Đẩy 0 vào stack ở dạng int32.Lệnh cơ bản0x17ldc.i4.1Đẩy 1 vào stack ở dạng int32.Lệnh cơ bản0x18ldc.i4.2Đẩy 2 vào stack ở dạng int32.Lệnh cơ bản0x19ldc.i4.3Đẩy 3 vào stack ở dạng int32.Lệnh cơ bản0x1Aldc.i4.4Đẩy 4 vào stack ở dạng int32.Lệnh cơ bản0x1Bldc.i4.5Đẩy 5 vào stack ở dạng int32.Lệnh cơ bản0x1Cldc.i4.6Đẩy 6 vào stack ở dạng int32.Lệnh cơ bản0x1Dldc.i4.7Đẩy 7 vào stack ở dạng int32.Lệnh cơ bản0x1Eldc.i4.8Đẩy 8 vào stack ở dạng int32.Lệnh cơ bản0x15ldc.i4.m1Đẩy -1 vào stack ở dạng int32.Lệnh cơ bản0x15ldc.i4.M1Đẩy -1 vào stack ở dạng int32. (dạng thay thế cho ldc.i4.m1).Lệnh cơ bản0x1Fldc.i4.s <int8 (num)>Đẩy số dạng int32 vào stack, dạng ngắn.Lệnh cơ bản0x21ldc.i8 <int64 (num)>Đẩy số kiểu int64 vào stack.Lệnh0x22ldc.r4 <float32 (num)>Đẩy số kiểu float32 vào stack ở dạng F.Lệnh cơ bản0x23ldc.r8 <float64 (num)>Đẩy số kiểu float64 vào stack ở dạng F.Lệnh cơ bản0xA3ldelem <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ình0x97ldelem.iTả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ượng0x90ldelem.i1Tả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ình0x92ldelem.i2Tả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ượng0x94ldelem.i4Tả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ượng0x96ldelem.i8Tả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ượng0x98ldelem.r4Tả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ượng0x99ldelem.r8Tả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ượng0x9Aldelem.refTả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ình0x91ldelem.u1Tả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ượng0x93ldelem.u2Tả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ượng0x95ldelem.u4Tả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ượng0x96ldelem.u8Tả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ượng0x8Fldelema <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ình0x7Bldfld <field>Đẩy giá trị của field vào stack.Lệnh mô hình đối tượng0x7Cldflda <field>Đẩy địa chỉ của field vào stack.Lệnh mô hình đối tượng0xFE 0x06ldftn <method>Đẩy con trỏ của phương thức được gọi vào stack.Lệnh cơ bản0x4Dldind.iGián tiếp tải giá trị kiểu native int vào stackLệnh cơ bản0x46ldind.i1Gián tiếp tải giá trị kiểu int8 vào stack dưới dạng int32.Lệnh cơ bản0x48ldind.i2Gián tiếp tải giá trị kiểu int16 vào stack dưới dạng int32.Lệnh cơ bản0x4Aldind.i4Gián tiếp tải giá trị kiểu int32 vào stack dưới dạng int32.Lệnh cơ bản0x4Cldind.i8Gián tiếp tải giá trị kiểu int64 vào stack dưới dạng int64.Lệnh cơ bản0x4Eldind.r4Gián tiếp tải giá trị kiểu float32 vào stack dưới dạng F.Lệnh cơ bản0x4Fldind.r8Gián tiếp tải giá trị kiểu float64 vào stack dưới dạng F.Lệnh cơ bản0x50ldind.refGián tiếp tải giá trị kiểu đối tượng vào stack dưới dạng O.Lệnh cơ bản0x47ldind.u1Giá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ản0x49ldind.u2Giá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ản0x4Bldind.u4Giá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ản0x4Cldind.u8Giá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ản0x8EldlenĐẩy độ dài của một mảng vào stack.Lệnh mô hình đối tượng0xFE 0x0Cldloc <uint16 (indx)>Tải biến cục bộ của chỉ số indx vào stack.Lệnh0x06ldloc.0Tải biến cục bộ 0 vào stack.Lệnh0x07ldloc.1Tải biến cục bộ 1 vào stack.Lệnh cơ bản0x08ldloc.2Tải biến cục bộ 2 vào stack.Lệnh cơ bản0x09ldloc.3Tải biến cục bộ 3 vào stack.Lệnh cơ bản0x11ldloc.s <uint8 (indx)>Tải biến cục bộ tại chỉ số indx vào stack, dạng ngắn.Lệnh0xFE 0x0Dldloca <uint16 (indx)>Tải địa chỉ của biến cục bộ có chỉ số indx.Lệnh0x12ldloca.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ản0x14ldnullĐẩy tham chiếu null vào stack.Lệnh cơ bản0x71ldobj <typeTok> Sao chép giá trị đã lưu tại địa chỉ src vào stack.Lệnh mô hình0x7Eldsfld <field>Đẩy giá trị của field vào stack.Lệnh mô hình đối tượng0x7Fldsflda <field>Đẩy địa chỉ của static field, field vào stack.Lệnh mô hình0x72ldstr <string>Đẩy một đối tượng string cho literal string.Lệnh mô hình đối tượng0xD0ldtoken <token>Chuyển token của metadata cho đại diện trong thời gian chạy.Lệnh mô hình đối tượng0xFE 0x07ldvirtftn <method>Đẩy địa chỉ của phương thức ảo vào stack.Lệnh mô hình0xDDleave <int32 (target)>Thoát khỏi một vùng code được bảo vệ.Lệnh0xDEleave.s <int8 (target)>Thoát khỏi một vùng code được bảo vệ, dạng ngắn.Lệnh cơ bản0xFE 0x0FlocallocChỉ định không gian từ vùng pool bộ nhớ cục bộ.Lệnh cơ bản0xC6mkrefany <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ượng0x5AmulNhân các giá trị.Lệnh cơ bản0xD8mul.ovfNhâ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ản0xD9mul.ovfNhâ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ản0x65negGiá trị âm.Lệnh cơ bản0x8Dnewarr <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ượng0x73newobj <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ượng0xFE 0x19no. {
 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ệnh0x00nopKhông làm gì cả (No operation).Lệnh cơ bản0x66notBitwise bổ sung (not).Lệnh cơ bản0x60orBitwise OR hoặc hai giá trị nguyên, trả về một số nguyên.Lệnh cơ bản0x26popĐẩy (pop) giá trị ra khỏi stack.Lệnh cơ bản0xFE 0x1Ereadonly.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ệnh0xFE 0x1DrefanytypeĐẩy token được lưu trong kiểu tham chiếu.Lệnh mô hình đối tượng0xC2refanyval <type>Đẩy địa chỉ lưu trọng kiểu tham chiếu.Lệnh mô hình đối tượng0x5DremPhần dư (remainder) khi chia một giá trị bởi một giá trị khác.Lệnh cơ bản0x5Erem.unPhầ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ản0x2AretTrả về (return) từ một phương thức, thường đi kèm với một giá trị.Lệnh cơ bản0xFE 0x1ArethrowNém lại (rethrow) ngoại lệ hiện tại.Lệnh mô hình0x62shlDị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ản0x63shrDị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ản0x64shr.unDị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ản0xFE 0x1Csizeof <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ượng0xFE 0x0Bstarg <uint16 (num)>Lưu trữ (store) giá trị vào tham số (argument) đã được đánh số là num.Lệnh0x10starg.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ản0xA4stelem <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ượng0x9Bstelem.iThay 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ượng0x9Cstelem.i1Thay 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ượng0x9Dstelem.i2Thay 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ượng0x9Estelem.i4Thay 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ượng0x9Fstelem.i8Thay 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ượng0xA0stelem.r4Thay 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ượng0xA1stelem.r8Thay 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ượng0xA2stelem.refThay 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ượng0x7Dstfld <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ượng0xDFstind.iLưu trữ giá trị của kiểu native int vào bộ nhớ dưới dạng địa chỉ.Lệnh cơ bản0x52stind.i1Lưu trữ giá trị của kiểu int8 vào bộ nhớ dưới dạng địa chỉ.Lệnh cơ bản0x53stind.i2Lưu trữ giá trị của kiểu int16 vào bộ nhớ dưới dạng địa chỉ.Lệnh cơ bản0x54stind.i4Lưu trữ giá trị của kiểu int32 vào bộ nhớ dưới dạng địa chỉ.Lệnh cơ bản0x55stind.i8Lưu trữ giá trị của kiểu int64 vào bộ nhớ dưới dạng địa chỉ.Lệnh cơ bản0x56stind.r4Lưu trữ giá trị của kiểu float32 vào bộ nhớ dưới dạng địa chỉ.Lệnh cơ bản0x57stind.r8Lưu trữ giá trị của kiểu float64 vào bộ nhớ dưới dạng địa chỉ.Lệnh cơ bản0x51stind.refLư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ản0xFE 0x0Estloc <uint16 (indx)>Đẩy giá trị trong stack vào biến cục bộ indx..Lệnh cơ bản0x0Astloc.0Đẩy giá trị trong stack vào biến cục bộ 0.Lệnh cơ bản0x0Bstloc.1Đẩy giá trị trong stack vào biến cục bộ 1.Lệnh cơ bản0x0Cstloc.2Đẩy giá trị trong stack vào biến cục bộ 2.Lệnh cơ bản0x0Dstloc.3Đẩy giá trị trong stack vào biến cục bộ 3.Lệnh cơ bản0x13stloc.s <uint8 (indx)>Đẩy giá trị trong stack vào biến cục bộ indx, dạng ngắn.Lệnh0x81stobj <typeTok> Lưu trữ giá trị của kiểu typeTok vào một địa chỉ.Lệnh mô hình đối tượng0x80stsfld <field>Thay thế giá trị của field với val.Lệnh mô hình đối tượng0x59subTrừ(subtract) giá trị 2 từ giá trị 1, trả về kết quả.Lệnh cơ bản0xDAsub.ovfTrừ 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ản0xDBsub.ovf.unTrừ 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ản0x45switch <uint32, int32, int32 (t1..tN)>Nhảy tới một trong n giá trị.Lệnh cơ bản0xFE 0x14tail.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ệnh0x7AthrowNém (throw) một ngoại lệ.Lệnh mô hình đối tượng0xFE 0x12unaligned. (alignment)Lệnh con trỏ tiếp theo có thể được unaligned.Tiền tố của lệnh0x79unbox <valuetype>Trích xuất một kiểu giá trị từ obj (dạng boxed).Lệnh mô hình đối tượng0xA5unbox.any <typeTok> Trích xuất một kiểu giá trị từ obj.Lệnh mô hình đối tượng0xFE 0x13volatile.Tham khảo con trỏ tham chiếu tiếp theo là volatileTiền tố của lệnh0x61xorBitwise XOR của các giá trị nguyên, trả về một số nguyên.Lệnh cơ bản

 Đọc thêm 
 Ngôn ngữ trung gian dùng chung là một hợp ngữ sử dụng các tập lệnh CTS.
 Cơ sở ngôn ngữ dùng chung là tiêu chuẩn định nghĩa CIL.
 .Net Framework là một nền tảng và là một bản triển khai của cơ sở ngôn ngữ dùng chung.
 Mono cũng là một nền tảng mã nguồn mở triển khai hiện thực hóa cơ sở ngôn ngữ dùng chung

Tham khảo
 Tập lệnh CIL tại C# Online.NET
 ECMA - tập lệnh CIL, trang 321 (ECMA-335.pdf)
Tham khảo

Thể loại:Ngôn ngữ lập trình