비트 함수를 사용할 때 가장 좋지 않지만 어떻게 작동하는지 알고 싶습니다. 일단 이것이 어떻게 작동하는지 알면 나머지 부분을 알아낼 수 있습니다.PowerPC를 C로 반전
ori r11, r11, 11
어떻게 C로 변환 할 수 있습니까? 내가 제대로하고 있니?
r11 = (r11 | 11);
저는 이것이 적절한 C 구문이 아니라는 것을 알고 있습니다. 단지 기본 지식 만 알고 싶습니다.
비트 함수를 사용할 때 가장 좋지 않지만 어떻게 작동하는지 알고 싶습니다. 일단 이것이 어떻게 작동하는지 알면 나머지 부분을 알아낼 수 있습니다.PowerPC를 C로 반전
ori r11, r11, 11
어떻게 C로 변환 할 수 있습니까? 내가 제대로하고 있니?
r11 = (r11 | 11);
저는 이것이 적절한 C 구문이 아니라는 것을 알고 있습니다. 단지 기본 지식 만 알고 싶습니다.
ori
명령은 or immediate: ori RA RS UI
입니다 :
RA = the resulting register to store the operation result
RS = the source register for which to use in the operation
UI is an unsigned 16-bit integer for the operation
당신은 그것을 정확하게 해석 한과 C뿐만 아니라 유효 보인다.
PowerPC는 빅 엔디안 아키텍처이므로 big-endian이 아닌 플랫폼 (예 : Intel x86)에서 데이터를 비교할 계획이라면 올바른 결과. 구문이 변경되지 않고 "하위 비트"의 위치가 변경됩니다.
ori는 "OR 즉시"이므로 올바른 것입니다. 바람직 될 것이라고 불구하고 C는 너무 괜찮 :
는r11 |= 11;
좋은 점은, 많은 PowerPC 명령어가 해당 C 구문과 똑같이 읽히는 것입니다. 예를 들어 추가 명령
add r3,r4,r5
는 대부분의 명령에 적용되는 문
r3 = r4 + r5;
내가 말했듯이, 동일합니다. 예외가 있습니다. 예를 들어 상점에는 적용되지 않습니다. 그 외에도 스펙에서 각 니모닉을 찾아 볼 필요가 있습니다.
이것을 자동화 할만한 것을 찾았습니까? C 코드가 컴파일되지 않더라도 어셈블러보다 훨씬 더 읽기 쉽습니다. – rolls