2014-07-10 4 views
0

질문 상태명령어가 몇 비트인지 결정

새 유형의 컴퓨터에 대한 명령어 세트를 설계하고 있습니다. 컴퓨터에는 60 개의 명령어와 16 개의 범용 레지스터가 있습니다. 최대 27MB의 바이트 주소 지정 가능 메모리를 지원합니다. 다음 질문에 답하십시오.
(a) 레지스터 어드레싱 모드 만 사용하는 3- 피연산자 명령의 경우 명령이 얼마나 길어야합니까?
(b) 피연산자 중 하나가 직접 주소 지정 모드의 메모리 위치 인 4 피연산자 명령의 경우 명령의 길이 (비트 수)는 얼마입니까?

파트 a의 경우, 2^x> = 60을 수행하고 거기에서 log_2를 수행하여 지침에 대한 x를 결정하십시오. 마찬가지로, 범용 레지스터의 경우 2^x> = 16입니다. 3 피연산자 명령과 4 피연산자 명령의 차이점은 무엇인지, 그리고 이것이 전체 비트에 미치는 영향에 대해서는 잘 모르겠습니다. 또한 메모리 위치를 나타내는 데 필요한 비트를 유도하는 방법을 잘 모르겠습니다. 대답은 (a) (첫 번째 로그에서) 6 개 + 두 번째 로그에서 4 개 = 10 비트를 나타내는 데 필요합니까?

+0

우리가이 (이전) 숙제에 대해 잘못한 해결책이나 어떤 문제도 공개되지 않아서 제가 알고있는 것을 벗어나기 때문에 제가 테스트하기 전에 올바른 것인지 확인하려고하지 않습니다. – user1066886

+2

얼마나 많은 비트를 사용합니까? 각 레지스터를 고유하게 식별해야합니까? 명령에 3 피연산자 (레지스터)가 있으면 최소 비트 수는 얼마입니까? 3 * N 명령어는 그 숫자보다 커야합니다. 4 피연산자의 경우, 적어도 하나는 레지스터가 아닙니다. 그러면 최소 3 * N + sizeof 주소 버스 + 하나 이상의 비트가 피연산자를 나타냅니다. /교수. –

+0

힌트 0b0000 = 0d 및 0b1111 = 15d –

답변

0

첫 번째 명령은 opcode와 레지스터 인 3 개의 피연산자로 구성됩니다. 따라서 필요한 비트는 6 (OPCode) + 3 (명령어에 3 개의 레지스터) x 4 (16 개의 레지스터가 있기 때문에 4 비트가 필요합니다.) => 18 비트 + 1 비트 이상 (피연산자 또는 연산 코드 정보)

두 번째로 질문은 4 피연산자 명령이고 하나는 메모리 피연산자이므로 메모리 피연산자를 처리하는 데 필요한 비트를 찾아야합니다. 최대 27MB까지 주소를 지정할 수 있으므로 메모리 피연산자 자체에 대해 2^5 (27 개), 2^20 (1M) 및 2^3 (Bytes) => 28 비트로 비트를 나눌 수 있습니다. 계산은 나머지 비트에도 마찬가지입니다. 따라서 28 + 6 + 4 + 4 + 4 => 46 비트 + 1 비트 이상 (피연산자 또는 연산 코드 정보 용)

호프 그것은 당신의 문제를 해결합니다

관련 문제