Hola!
Mi pregunta es, ¿por que el rango solo va desde ldc.i4.0 hasta ldc.i4.8?, quiero decir, ¿por que no hay un 9, y así hasta el máximo valor Int32?, ¿porque y con que finalidad solo hay 8 índices/valores pre-establecidos de este opcode?.
La verdad, creo que esta es una pregunta para los desarrolladores del CIL

. De todas formas, si miras el
listado de opcodes (en la parte de
ldc.i4) verás que no solo hay constantes de 0 a 8, sinó que también está el -1. Incluso hay una
forma corta (short form) de pushear valores de 32 bits al stack de la VM (
ldc.i4.s, opcode 0x1F).
Con respecto al
ldc.i4, si miraras la secuencia (en bytes) de opcodes para pushear, por ej., el valor 0X000F1ACA, verías algo como:
20 00 0F 1A CAO bien
20 CA 1A 0F 00No recuerdo si los numeros se almacenan como bigendian o no.

Saludos!