컴퓨터의 역사를 읽고 있었고 IA-64 (Itanium) 프로세서를 사용했습니다. 그들은 정말 흥미로 웠고 인텔이 왜 포기하기로 결정했는지 혼란 스러웠습니다.
그주기에서 실행하고자하는 2 가지 명령을 명시 적으로 선택할 수있는 기능은 특히 빠른 부트 로더와 같이 어셈블리로 프로그램을 작성할 때 좋은 아이디어입니다.
수백 레지스터는 어셈블리 프로그래머를위한 설득해야한다. 다른 함수를 호출하지 않으면 모든 함수 변수를 레지스터에 저장할 수 있습니다.
다음과 같은 지침을 수행하는 기능 :
(qp) xor r1 = r2, r3 ; r1 = r2 XOR r3
(qp) xor r1 = (imm8), r3 ; r1 = (imm8) XOR r3
해야 할 일 :
; eax = r1
; ebx = r2
; ecx = r3
mov eax, ebx ; first put r2 into r1
xor eax, ecx ; then set r1 equivalent to r2 XOR r3
mov eax, (imm32) ; first put (imm32) into r1
xor eax, ecx ; then set r1 equivalent to (imm32) XOR r3
x86과의 비교 가능성이 없다고 들었지만 Pentium 회로를 추가하고 Itanium 모드로 전환하는 프로세서 플래그를 추가하면 해결할 수 없습니다 (보호 또는 긴 모드로 전환).
그것에 대한 모든 위대한 것들이 AMD보다 훨씬 앞서 나갔을 것입니다.
어떤 아이디어?
안타깝게도이 작업을 수행하려면 고급 컴파일러가 필요합니다. 또는 특정 CPU 모델 당 하나도 가능합니다. (예를 들어 추가 기능이있는 Itanium의 최신 버전에는 다른 컴파일러가 필요합니다).
Visual Studio 2010에서 WinForms (대상에는 .NET 2.0 만 있음) 프로젝트를 작업 할 때 IA-64의 컴파일 대상이있었습니다. 이는 IA-64 용으로 컴파일 할 수있는 .NET 런타임이 있고 .NET 런타임은 Windows를 의미합니다. 또한 Hamilton의 답변 에는 Windows NT가 언급되어 있습니다. Windows NT와 같은 완전한 OS가 있다는 것은 IA-64 기계 코드를 생성 할 수있는 컴파일러가 있다는 것을 의미합니다.