2017-11-16 25 views
1

나는 어큐뮬레이터 아키텍처를위한이 기계 코드를 가지고있다. 아키텍처는 8 비트입니다. 명령어 인코딩은 실제 기계 코드 예를 들어 명령 하나입니다 과 같다 : (1), 즉 가치입니다 우리에게 알려줍니다, 001 LOAD를 의미하며, 001 (1) 0001과 001은 소수점 1 그래서 그로드 # 1누적 기 구조에 대한이 자체 수정 프로그램은 언제 종료됩니까?

0---LOAD #1 
1---STORE 15 
2---LOAD #0 
3---EQUAL #4 
4---JUMP #6 
5---HALT 
6---LOAD 3 
7---SUB #1 
8---STORE 3 
9---LOAD 15 
10--ADD 15 
11--STORE 15 
12--JUMP #2 
13-- 000 0 0000 
14-- 000 0 0000 
15-- 000 0 0000 

프로그램이 멈출 때 메모리 셀 15에 무엇이 있는지 찾아야합니다.

하지만 명령 2로 건너 뛰면 누적 기가 0이 아니며 절대 4가 아니며 프로그램이 무한 루프로 실행된다는 것을 의미합니다. 맞습니까?

메모리 셀 3이 비어 있다면 STORE 3은 무엇을합니까? 메모리 셀이 비어있을 때 그 값은 0입니다.

은 내가이 없음 누적 아키텍처입니다 있으리라 믿고있어이 두 가지 질문에

+2

귀하의 질문에 제목이 다소 심각 할 수 있습니다. 실제로 누군가가 이것이 관심있는 질문인지 여부를 결정하는 데 도움이되는 거의 제로의 정보가 제목에 있습니다. –

+0

나는 그것을 바꿨지 만 정확한 제목을 찾을 수 없다. 정확히 어떤 것인가? – Dan

+0

이것이 어떤 구조인지 설명 할 필요가있다. –

답변

1

에 대답하지 않고 더 이상 진행되지 않는, 나는 그 아키텍처에 대한 많은 가정을 할 필요가 있어요. 이 질문에 답하기 위해 CPU가 어떻게 작동하는지 더 많이 설명해야합니다.

예, # 3에서 누산기는 항상 0입니다. 그리고 명령 # 3이 절대로 변경되지 않으면 0은 절대로 4가 아니며 프로그램은 계속 반복됩니다.

그러나 메모리 셀 3에 저장할 때 셀 3의 명령어를 이제 누적 기의 명령어로 바꾸는 것이 좋습니다. 흥미로운 질문은 equal #4의 명령어 표현에서 1을 뺄 때 일어나는 일입니다. 그건 yoru 특정 아키텍처에 따라 다르지만, 내 강한 추측은 equal #3을 가져 와서 셀 3에 저장한다는 것입니다.

루프가 끝나고 셀 15에 무엇이 있는지 파악하면 충분합니다.

+0

이것은 내가 사용하고있는 아키텍처입니다. http://courses.cs.vt.edu/csonline/MachineArchitecture/Lessons/CPU/Lesson.html – Dan

+0

그래, 제 추측은 정확합니다. –

+0

그리고 명령 2로 건너 뛰면 명령 2는 누적기를 0으로 설정하고 명령 3은 "누적 기의 숫자가 숫자 4와 같은지"를 비교합니다. 항상이 작업을 수행하며 항상 동일한 대답을 갖습니다 : 아니오, 그리고 루프가 무한히 진행되면, 실제로 종료되지 않습니다. (나는 그렇게 생각합니다.) 만약 명령 12가 "점프 # 3"이라면 이것은 완전한 의미를 갖습니다. – Dan