이없는, 차이점은 무엇입니까? 32 비트 레지스터의 최 우측 바이트로
"로드 바이트"지시 lb
및 lbu
부하 단일 바이트. 상위 24 비트는 어떻게 설정합니까? 부호가없는 연산은 0으로 설정됩니다. 서명 된 작업은로드 된 바이트 sign-extend이됩니다.
예를 들어, 메모리에서 0xFF
바이트를 읽는다고 가정 해보십시오. lbu
은이 값을 0x000000FF
으로 0- 확장하고 255로 해석하고 lb
은 부호 확장을하여 0xFFFFFFFF
으로 -1을 해석합니다.
왜 lw
에는 부호없는 버전이 있습니까? 심지어 저장 명령은 "로드 단어"명령 (lw
)이, 다른 한편으로는, 32 비트 레지스터로 32 비트 데이터를로드
하나 ...이 없다, 그래서이 없습니다 애매 모호하고 특별한 서명 된 버전을 가질 필요가 없습니다.
전체 32 비트 워드 미만을 저장하는 경우 레지스터에서 여분의 비트를 무시하고 무시할 수는 없습니다 (무시하십시오).
'부호없는'이라는 MIPS 산술 정의에 따라 오버플로가보고되지 않는다는 의미일까요?
이 규칙은 더하기 및 빼기 명령어에만 해당하는 것으로 생각합니다. 다른 지침의 경우 부호있는/서명되지 않은 부호 확장이 수행되는지 여부를 나타냅니다.
주소의 값에 추가하기 전에 오프셋을 서명합니까? 또는 확장하기 전에 추가 하시겠습니까?
오프셋이 부호 확장 인 경우 기본 주소에 추가하기 전에 수행해야합니다. 나는 two's complement 산수의 검토가 이것을 분명히 할 것이라고 생각한다.
그냥 대답, 감사했습니다! – Check
'sb' 바이트를 저장 하시겠습니까? 저장하기 전에 부호 확장 또는 제로 확장이 있습니까? – NoName