2012-06-26 6 views
1

임의의 프로그램을 실행하는 데 사용할 프로세서를 만드는 경우 제거 할 수있는 최소 지침 집합 (ISA)은 무엇입니까?필요한 최소 조립 지침은 무엇입니까?

나는 생각했다 :

  • ALU-OPS는 (추가, 뺄셈, 곱셈, 나눗셈)

  • 로드 등록, [주소]

  • 스토어의 등록, [주소]

  • Branch-if 조작. 동일하지 않을 경우 경우 < (branchif의 REG1, REG2, LABEL)이

당신은 어떻게 생각하면,>, 지점을 가지고 있을까요?

+0

레지스터 기반 머신을 설명하고 있습니다. 스택 기반 머신은 항상 더 간단합니다. 몇 가지 PUSH/POP 및 물론 JUMP/JUMPT/JUMPF ... 오와 고정 명령 길이가있는 표준 산술/논리 연산자. –

+0

우리는 8085 마이크로 프로세서를 배웠고 div의 네이티브 구현을 가지지 않았습니다. :) – Shubham

+0

이것이 http://programmers.stackexchange.com에 속하면 궁금해할까요? –

답변

5

기술적으로는 One Instruction 만 필요합니다. 그것은 수학과 조건부 분기를해야합니다. 예 : 음수 일 경우 빼기 및 분기.

1

다른 명령어로 빌드 할 수있는 명령어는 필요하지 않습니다.

그래서, mul 또는 div이 필요하면 반복되는 더하기 또는 빼기 및 sub 필요없이 당신이 neg (부정)가있는 경우 그렇게 할 수 있기 때문에 숫자는 2의 보수와 마찬가지로 바꿈됩니다.

그리고 확실하게 두 개의 분기 명령, 동등한 하나,보다 적은 하나 -로 구성 될 수 있습니다. 다른 모든 것들은 그 조합으로 만들 수 있습니다.

I/O 지침이 없으므로 다른 장치와의 통신이 메모리 액세스 인 경우 메모리 매핑 I/O를 사용해야 할 수 있습니다.

네이티브 pushpop이 없으면 전용 레지스터 (및 레지스터 위치 이동이없는 것으로 보이는 메모리 위치)를 사용하여 자체 스택을 구현해야 할 수 있습니다.

이제는 멋진 아키텍처가 아니지만 작동해야합니다. 매트릭스 아키텍트 (Matrix Architect)는 "우리가 받아 들일 준비가되어있는 수준의 생존이있다"고 말했다.


제쳐두고, RCA1802 CPU를 살펴보십시오 (요일로부터). 그것은 이 아니고 전용 프로그램 카운터 또는 스택 포인터를 가지고 있었고, 소프트웨어의 모든 것을 구현했습니다 (자세한 내용은 here 참조).

1

8085에서 프로그래밍하는 동안 나는 같은 것을하기위한 몇 가지 방법이 있다고 느꼈다. 따라서 이것이 사실 인 경우 명령 집합이 최소가 아니라는 것을 알고 있습니다.

다음 지침을 제안합니다 : 스토어를 추가, 보완, 논리 AND, OR 및로드합니다. 조건부 및 무조건 부울 점프.

대부분의 다른 명령어는 위의 명령어로 수행 할 수 있습니다.


편집 : 그냥 (8085 기준) 조립 설명서를 나열하려면 : 3 개 레지스터가 특징

내가 모델을 고려할 것입니다. 같은 A 조작과 = B + C

ADD의 B, C (A = B + C)
CMA (A = A ')
OR B, C (A = B OR C) JMP의 XXXX (SET PC는 제로 플래그가 설정되어있는 경우() 점프)

참고
LDA의 XXXX (XXXX 주소의 내용)
STA XXXX
JZ의 XXXX와 부하 A를 XXXX합니다 : 나는 복사 할 추가 명령을 실현 레지스터 사이에서 데이터가 매우입니다 유능한. 그러나 생략 될 수 있습니다. 그것없이 할 수없는 경우를 제시하십시오.