2011-12-26 4 views
1

MIPS의 subu 명령어는 부정 결과를 낳을 수 있습니까, 아니면 서명되지 않은 서브 버전을 수행하고 있으므로 결과가 항상 긍정적입니까? 또한, 산술 시프트를 올바르게하고 번호의 0 번째 위치에 1을 넣고 싶다면 sra 명령어를 사용해야합니까, 아니면 다른 명령어가 있습니까?MIPS 지시 사항

답변

3

모든 기계 명령어와 마찬가지로 subu은 대상 레지스터에 저장된 32 비트의 이진 결과를 제공합니다. 이 비트들은 단지 비트 들일 뿐이며, 그것들은 양수 나 음수가 아닙니다. 어떻게 해석 할 것인가에 달려 있습니다. 부호있는 정수로 해석하면 정수는 양수 또는 음수 일 수 있습니다. 대신 비트를 떠 다니는 포인터 번호로 취급 할 수 있습니다. 비트가 어디에서 왔는지는 관련이 없습니다.하지만 이것은 비관적 일 수 있습니다. subsubu 사이의 유일한 차이는 오버 플로우에 sub 의지 트랩, 부호있는 정수로 피연산자를 치료한다는 것입니다

참고. subu은 정확히 동일한 결과를 산출하지만 트랩되지 않습니다.

sra 최상위 비트 (부호있는 정수로 레지스터의 비트를 처리하는 경우 부호 비트임)를 그대로두고 비트를 아래로 (오른쪽으로) 이동하고 비워진 모든 위 위치에 복사합니다.