2016-12-30 2 views
0

r5의 값을 덤프하려고 했으므로 var_A0 데이터가 무엇인지 볼 수 있습니다. 나는 X 박스 360 콘솔에서 UART 디버깅,
EX)를 사용하고 있기 때문에 PPC에 덤프하려고 : 나는 var_A0의 값이PPC에서 덤프 레지스터

addi  r5, r1, 0x110+var_A0 

코드 메신저는 사용이 무엇인지 알아 내려고 노력 해요 : :

PrintKey: 
    lis  %r29, -0x8000 
    ori  %r29, %r29, 0x100 
    sldi %r3, %r29, 32 
    ori  %r3, %r3, 0x247C # 0x800001000000247C 
    li  %r4, 0x80 
    bl  printAddress 
printAddress: 
    mr  %r30, %r3 
    mr  %r11, %r4   # text size 
    mtctr %r11 

그러나 이것은 단지 HV에 실제 코드를 인쇄하지 레지스터 데이터

+1

그리고 귀하의 질문은 무엇입니까? 당신은 무엇을하고 무엇을 시도하지 않았습니까? – UnholySheep

+0

코멘트에 입력 한 코드와 같은 (관련성있는) 정보를 추가하지 말고 질문의 일부로 편집하십시오. – UnholySheep

+0

괜찮습니다. 처음으로 사이트를 사용하여 사과드립니다. –

답변

0

여기에 분류해야합니다 몇 가지가 있습니다

printAddress 함수는 주소가 r3이고 크기가 r4 인 것처럼 보이며 그 주소에있는 메모리의 내용을 인쇄합니다 (아마도). 우리는 인쇄가 어떻게 끝났는지 말할 방법이 없습니다. 그 일을하기위한 코드가 여러분의 질문에서 빠져 있기 때문입니다.

따라서 r5 값을 표시하려면 printAddress을 사용하지 않는 것이 좋습니다. 메모리가 아닌 레지스터 내용을 인쇄하기 위해 실제 인쇄 코드 (누락 된 것)를 적용 할 수 있습니다.

그러나 실제 발견하고자하는 것은 컴파일시 (또는 최종 링크 중 적어도 정적으로 연결된 이진 파일인지 여부)에 결정될 가능성이 높습니다 (var_A0의 값). 동적 실행 파일 인 경우 디스 어셈블 된 코드를 확인하거나 동적 재배치 항목을 확인하십시오.

또는 addi 명령어가 포함 된 메모리 내용을 인쇄 한 다음 지침을 수동으로 디코딩하여 addi에 사용 된 즉시 값을 확인할 수 있습니다.

관련 문제