2016-09-10 5 views
0

명령어 인코딩과 관련된 질문을 해결하려고합니다. 명령어 길이가 18 비트 인 프로세서가 있으며 다음 명령어 인코딩이 가능한지 여부를 확인할 필요가 있습니다. a) 5 개 세 어드레스 명령어 b) 95 개 개의 어드레스 명령 c)명령어 세트 인코딩을 통한 명령어 주소

다음과 같이 지금은 31 개 1 어드레스 명령어 d) 70 개 영 어드레스 명령어

는 I는 (a) 부분을 할 수 있어요 XXX xxxxx는 xxxxx는 xxxxx는

000 xxxxx는 xxxxx는 xxxxx는

001 xxxxx는 xxxxx는 xxxxx는

010 xxxxx는 xxxxx는 xxxxx는

011 xxxxx는 xxxxx는 xxxxx는

100 xxxxx는 xxxxx는 xxxxx는

나는 위의 인코딩에서 내 오 개 3 주소 지침을 얻을 수 있지만 지금은 95 개 개의 주소 지침과 더 사람을 필요로 하지만 난 수없는 것 세 가지 지시 사항이 남아 있고 나머지를 어떻게 수행해야할지 모르겠으므로 (b) 부분을 해결하십시오.

101의 xxxxx의 xxxxx xxxxx는 110의 xxxxx의 xxxxx xxxxx는 111의 xxxxx의 xxxxx의 xxxxx

이 나머지 세 설명하고 그들로부터 또한 도움이 것이 제 배역 (c)와 (d)의 경우 인코딩해야 감사하겠습니다.

+0

흠 - a) ~ c)까지 할 수 있지만 70 제로 주소 명령에 맞지 않는 문제가 있음을 알았습니다. 저는 32에 맞을뿐입니다. –

+0

그래도 지금 똑같은 문제에 직면 해 있습니다 ... 제 생각에는 d) 옵션이 불가능합니다. 처음 세 가지를 해결하는 방법을 공유하면 도움이 될 수 있습니다. –

+0

물론입니다. 아래를 참조하십시오. –

답변

0

당신이 질문에 그것을 밖으로 철자 아니지만, 그 xxxxx 필드는 3 주소 지침에 5 비트 주소 필드가 있다는 인상을. 그런 경우는 다음의 경우가 보여으로, 단계 a) 후 남아있는 것을 세 접두사 (101), (110), 및 2 주소 지침을 인코딩 (111)

이며, 다음, 당신은 3 주소 필드가 당신의 3 개의 '무료'접두어 외에 폐기 처분. 주소 필드는 5 비트이기 때문에 32 개의 다른 값을 인코딩 할 수 있습니다. 당신은 '전용'두 주소 지침은 95해야하기 때문에 세 번 (32)는 좋은 96, 그래서 다음과 같이 그 인코딩 할 수 있습니다 :

101 00000 xxxxx xxxxx ... 101 11111 xxxxx xxxxx 
110 00000 xxxxx xxxxx ... 110 11111 xxxxx xxxxx 
111 00000 xxxxx xxxxx ... 111 11110 xxxxx xxxxx 

최종되지 않은 8 비트 접두사, 111 11111

, 수 사용할 - - 그 다음과 함께 1 어드레스 명령들을 인코딩하는데 사용되는 어드레스 슬롯 :

111 11111 11111 00000 ... 111 11111 11111 11111 
: 제로 어드레스 명령들을 인코딩하기위한 13 비트 프리픽스 111 11111 11111

111 11111 00000 xxxxx ... 111 11111 11110 xxxxx 

불행히도 나머지 5 개의 주소 필드를 인코딩 할 수있는 하나의 5 비트 주소 필드가 있기 때문에 호출해야하는 70 개가 아니라 32 개만 들어갈 수 있습니다.

+0

흠 나는 주소 필드에 대해 정확하게 철자를 쓰지 않았지만 이제는 d 옵션을 사용할 수 없습니다. 정말 감사드립니다! –