Примерно так:
IL_0001: /* 1F | 32 */ ldc.i4.s 50
IL_0003: /* 0B | */ stloc.1
IL_0004: /* 07 | */ ldloc.1
IL_0005: /* 0A | */ stloc.0
На более низком уровне это зависит от архитектуры машины и уровня оптимизации. Код, подобный этому, в частности, который не имеет никакого эффекта, вероятно, будет просто полностью пропущен. В противном случае это будет простой код, возможно, такой:
movsx eax, word ptr [ebp+12]
mov [ebp+8], eax
movsx
- это инструкция x86, которая сохраняет знак более короткого числа при загрузке в большее место назначения; в основном он смотрит на самый значащий бит меньшего источника и копирует его в оставшиеся биты, когда расширяет число.