다른 아키텍처 용 컴파일러를 작성한다고 가정 해보십시오. 아키텍처의 엔디안이 다릅니다. 메모리 읽기 및 쓰기 명령어가 있음이진 변환 | 교차 컴파일
값 0xAA0xBB0xCC0xDD를 저장하려는 저장 명령어의 예를 들어보십시오. 이제 어셈블리를 작성하는 동안 아키텍처에 대해 서로 다른 두 가지 지침을 작성합니까? 빅 엔디안 st (reg), 0xDD0xCC0xBB0xAA
: 작은 엔디안
st (reg), 0xAA0xBB0xCC0xDD
아니면 동일한 명령, 즉, 같은 아키텍처에 대한 st, (reg), 0xAA0xBB0xCC0xDD
을 작성하고 명령은 그것을 그 프로세서에 의해 구문 분석 할 수 있도록 시스템의 엔디안을 처리합니까?
내가이 질문을하는 이유는 서로 다른 엔디안의 아키텍처간에 코드를 변환해야 할 때 바이너리 변환기가 무엇을 할 것인지 모르겠다. 건축술 A에서, 당신은 건축술 B를 위해 당신이 st, (reg), YX로 그것을 개조합니까? 그렇다면 메모리 읽기는 어떻게됩니까?
메모리 읽기 및 쓰기를 고려하여 엔디안을 처리하는 방법을 알고 싶습니다.
그러면 어셈블리 모듈을보고 상수와 null로 끝나는 문자열을 어떻게 구별합니까? – n0nChun
@ n0nChun, 나는 그것이 불가능하거나 적어도 어렵다고 확신한다. 프로그래머의 마음을 읽는 데는 꽤 많은 돈이 듭니다. –