2011-08-29 5 views
9

Google의 도움과 손에있는 교과서를 사용하여도 이러한 개념에 대한 개념을 파악할 수 없습니다. 형식 (오피 코드, RS, RT, 오프셋)에 따라서명/서명되지 않은로드 및 저장 명령어에 대한 설명 (MIPS)

...

  • 당신이 서명 함은이 주소 값에 추가하기 전에 오프셋을 확장합니다? 또는 확장하기 전에 추가 하시겠습니까?
  • lblbu의 경우 무엇이 다른가요? MIPS 산술 정의에 따르면 '부호없는'은 오버플로를보고하지 않는다는 의미입니다.
  • lw의 서명되지 않은 버전이 있습니까? 심지어 매장 지시 ... 하나 lblbu의 경우

답변

23

이없는, 차이점은 무엇입니까? 32 비트 레지스터의 최 우측 바이트로

"로드 바이트"지시 lblbu 부하 단일 바이트. 상위 24 비트는 어떻게 설정합니까? 부호가없는 연산은 0으로 설정됩니다. 서명 된 작업은로드 된 바이트 sign-extend이됩니다.

예를 들어, 메모리에서 0xFF 바이트를 읽는다고 가정 해보십시오. lbu은이 값을 0x000000FF으로 0- 확장하고 255로 해석하고 lb은 부호 확장을하여 0xFFFFFFFF으로 -1을 해석합니다.

lw에는 부호없는 버전이 있습니까? 심지어 저장 명령은 "로드 단어"명령 (lw)이, 다른 한편으로는, 32 비트 레지스터로 32 비트 데이터를로드

하나 ...이 없다, 그래서이 없습니다 애매 모호하고 특별한 서명 된 버전을 가질 필요가 없습니다.

전체 32 비트 워드 미만을 저장하는 경우 레지스터에서 여분의 비트를 무시하고 무시할 수는 없습니다 (무시하십시오).

'부호없는'이라는 MIPS 산술 정의에 따라 오버플로가보고되지 않는다는 의미일까요?

이 규칙은 더하기 및 빼기 명령어에만 해당하는 것으로 생각합니다. 다른 지침의 경우 부호있는/서명되지 않은 부호 확장이 수행되는지 여부를 나타냅니다.

주소의 값에 추가하기 전에 오프셋을 서명합니까? 또는 확장하기 전에 추가 하시겠습니까?

오프셋이 부호 확장 인 경우 기본 주소에 추가하기 전에 수행해야합니다. 나는 two's complement 산수의 검토가 이것을 분명히 할 것이라고 생각한다.

+0

그냥 대답, 감사했습니다! – Check

+0

'sb' 바이트를 저장 하시겠습니까? 저장하기 전에 부호 확장 또는 제로 확장이 있습니까? – NoName