CLR 및 JVM과 같은 스택 기반 가상 시스템에는 다른 명령어 집합이 있습니다. 가상 머신을 생성하는 동안 명령어 세트를 고안하는 것에 대한 이론이 있습니까? 예 : JVM 명령 이유가스택 기반 명령어 세트를 고안하는 방법은 무엇입니까?
ldc.i4.0
ldc.i4.1
ldc.i4.2
ldc.i4.3
ldc.i4.4
ldc.i4.5
ldc.i4.6
ldc.i4.7
ldc.i4.8
다음과 같이 CLR에서 스택으로 0 내지 8 참조로드 명령 세트가있다
iconst_0
iconst_1
iconst_2
iconst_3
iconst_4
iconst_5
반면 스택으로 0-5의 정수를로드 세트 존재 ldc.i4.9
이고 ldc.i4 <int32 (num)>
이라면 왜 위의 opcode가 필요한가요? 그리고 이런 것들도 있습니다.
다른 VM의 opcode간에이 차이가 발생한 이유는 무엇입니까? 이 opcode를 고안하는 특정 이론이 있습니까? 아니면 VM 자체의 특성에 의해 완전히 유도되거나 고급 언어 구문에 의존합니까?