2013-07-19 3 views
0

나는 코드를 추출하려고 시도하고 있지만 다음 코드가 충돌 한 이유를 이해할 수 없습니다. 다음 행없이 동일한 코드를 사용할 때 : call string [mscorlib]System.Console::ReadLine() 코드 동작이 예상되지만 위에 설명 된 행 강제 충돌이 추가됩니다. 이 성명서에 무엇이 잘못 되었습니까 ??.net 어셈블러의 readline 함수

.assembly Hello {} 
    .method public static void SomeFunction() cil managed 
    { 
     .entrypoint 
     ldstr "Hello, world!" 
     call void [mscorlib]System.Console::WriteLine(string) 
     call string [mscorlib]System.Console::ReadLine() 
     ret 
    } 
+0

왜 C#으로 코드를 작성하지 않았고 IL을 살펴 보았습니까? – svick

답변

3

ReadLine은 문자열을 반환하므로 ret 전에 "pop"이 있어야 할 것 같습니까?

+0

thnks, 당신 말이 맞아요. – user2201747