본문 바로가기

Programming Language/MSIL

MSIL로 입출력하기 및 박싱/언박싱 //test2.il .assembly extern mscorlib { } .assembly Test { } .module test.exe .method static public void main() il managed { .entrypoint .maxstack 16 /* 이 곳에 지역 변수를 선언합니다. */ .locals init([0] string temp, [1] int32 a, [2] int32 b, [3] int32 result) /* System.Console.Write("Input the 1st integer : "); */ ldstr "Input the 1st integer : " call void [mscorlib]System.Console::Write(string) /* temp = S.. 더보기
MSIL의 기본 자료형 MSIL의 기본 자료형은 C#과 동일하게 부호 있는 정수와 부호 없는 정수 및 부동소수점으로 구성되어있습니다. 각각 .NET 기본 자료형에 대응되어 있습니다. 자료형.NET 클래스 이름설명 voidSystem.Void반환할 데이터가 없는 메서드의 반환 형식 boolSystem.BooleanTrue 또는 False charSystem.Char16비트 유니코드 문자 int8System.SByte부호 있는 8비트 정수 int16System.Int16 부호 있는 16비트 정수 int32System.Int32부호 있는 32비트 정수 int64System.Int64부호 있는 64비트 정수 native int System.IntPtr시스템 기본 크기의 부호 있는 정수 unsigned int8 System.Byte부호.. 더보기
MSIL로 닷넷 프로그램 작성하기 C#, VB.NET, J#, F#, C++/CLI, Delphi.NET 등등의 닷넷 프레임워크에서 사용되기 위한 언어는 중간언어(MSIL: Microsoft Intermediate Language)로 번역이 됩니다. 이 바이너리를 실행하는 순간 해당 CPU에 맞는 명령어들로 한번 더 번역이 되는 것이죠. MSIL은 어셈블리어보다는 심플합니다. 명령어의 수도 몇 개 되지 않고 소스 코드도 C언어와 비슷한 형태를 띱니다. // 파일명: test.il /* 닷넷의 기본 클래스들이 정의된 mscorlib를 참조해 쓰겠다는 부분입니다. */ .assembly extern mscorlib { } /* 이 어셈블리(= exe파일 또는 dll파일)의 이름은 Test입니다. */ .assembly Test { /* 어셈.. 더보기