2014-10-10 2 views
1

저는 컴퓨터 조직과 아키텍처에 대해 지금 배우고 있습니다. 우리는 몇 가지 연습을했습니다. 그 중 하나는 어셈블리 코드를 기계 명령어로 변환하는 것입니다.어셈블리를 기계 코드로 변환

movia을 컴퓨터 명령어로 변환해야합니다.

는 나는이 작업 orhiaddi 구성 알고있다.

이 어셈블리 코드입니다 : r00x0 것을

movia r8, 50000 

운동 상태 및 r80x8입니다. orhi r8, r0, %hiadj(50000) 및 추가 기능은 다음과 같습니다 :

그래서, orhi는 것 addi r8, r8,%lo(50000)

내가 입수 한 orhi에 :

00000 01000 1100001101010000 110100  
___________________r0____r8_______50000________0x34(opcode) 

하지만이 50000에 %hiadj을 사용해야합니다! 나는 어떻게 해야할지 모르겠다. 나는 그것을 조금 둘러 보았지만 충분히 명확한 답을 찾지 못했습니다.

나는 이것에 아주 새롭다 그러나 이해하고 진짜로 싶다! 그렇다면 %hiadj은 어떻게 사용합니까? 질문이 명확하지 않다, 그러나 당신이 도움을 원한다면, 내가 노력 등을 설명하겠습니다 경우 죄송합니다.

답변

1

%hiadj은 그 피연산자의 최상위 16 비트이며, 최하위 16 비트가 movia에 의해 부호 확장 된 경우 조정됩니다. 50000의 경우, 16 최상위 비트는 0을하고, 어떤 부호 확장이 없습니다.

그래서 %hiadj(50000)은 단순히 0 될 것이다.