2009-06-02 2 views
1

한다 량 레지스터 $의 S1을 지정하는 레지스터 $의 S2 의 값의 최하위 5 비트를 사용하여 상기 명령MIPS 조립체 할당 - 부하 워드

sllv $s0, $s1, $s2 

을 구현하는데 사용되는 다음 코드 문제 왼쪽으로 이동 :

  .data 
    mask: .word 0xfffff83f 
      .text 
    start: lw  $t0, mask 
      lw  $s0, shifter 
      and $s0,$s0,$t0 
      andi $s2,$s2,0x1f 
      sll $s2,$s2,6 
      or  $s0,$s0,$s2 
      sw  $s0, shifter 
shifter: sll $s0,$s1,0 

나는 그 지침 대부분을 알고 있습니다.

하지만 두 번째로드 단어가 그 자체가 명령어가 아닌 단어 인 쉬프터에서 어떻게로드되는지는 알지 못합니다.

바이너리로 변환 할 때 마스크의 값이 16 진수로 변환 될 때 질문이 표시 될 때 5 개 이상의 중요한 부분이 0이 아니므로 최소 5 개 신호를 숨기는 방법을 모르겠습니다.

+0

이 아키텍처가 어떤 아키텍처인지 그리고 어떤 프로세서인지 알려줄 필요가 있습니다. 그것이 없으면 우리는 그것이 무엇을하는지 말할 수 없습니다. – Spence

+0

질문을 좀 더 구체적으로 작성하면 도움을받을 수 있습니다. 이해에 어려움이있는 특정 교육이 있습니까? –

+0

그 지침에 익숙합니까? 당신이 할 수있는 한 최대한의 번역 노력은 길을 갈 것입니다. –

답변

2

그런 일은 거의 없습니다. 그것은 실제로 교대를 수행하기 위해 메모리 내 명령을 수정하고 있습니다! 코드를 따라 가면 sll $s0,$s1,0 명령어가로드되고 sa 필드가 0에서 $s2으로 수정 된 다음 다시 메모리에 저장되고 실행되는 것을 볼 수 있습니다.