ARM asssembler질문좀 드립니다.

빈즈파덜 2014.08.05 16:29 조회 수 : 2392

안녕하세요~


ARM어셈블러를 공부하고 실제로 어떻게 되어있는지 알아볼려는데요...


책에서 이해한걸 바로 적용을 할려니 이해가 안되는 부분이 있어서 질문좀 드립니다...


너무 쉬운 코드인데 이해를 못해서 조금 부끄럽네요..


ARM Assembler공부를 해볼려고 아래의 C코드를 so 라이브러리 형태로 빌드한후에 해당 so파일을 IDA라는 disassembler툴로 열어보았습니다.

코드는 아래와 같습니다.


* C코드

void Java_org_androidtown_thread_SampleThreadActivity_hello(JNIEnv *env, jobject thiz)
{
__android_log_print(ANDROID_LOG_ERROR, "Hello", "Hello Jni World %s : %d", __FILE__, __LINE__);
}


* ASM코드

.text:00000C0C PUSH {R0-R2,LR}
.text:00000C0E MOVS R0, #8
.text:00000C10 LDR R1, =(aHello - 0xC1A)
.text:00000C12 LDR R2, =(aHelloJniWorldS - 0xC1E)
.text:00000C14 LDR R3, =(aJniHello_c - 0xC20)
.text:00000C16 ADD R1, PC ; "Hello"
.text:00000C18 STR R0, [SP,#0x10+var_10]
.text:00000C1A ADD R2, PC ; "Hello Jni World %s : %d"
.text:00000C1C ADD R3, PC ; "jni/hello.c"

.text:00000C1E MOVS R0, #6
.text:00000C20 BLX __android_log_print
.text:00000C24 POP {R1-R3,PC}


위의 어셈코드에서 R1 ~ R3레지스터에 Argument값을 넣어서 __android_log_print 함수를 호출하는 과정인데요


1. ADD R1, PC ---> 이 코드가 이해가 되질 않습니다. PC값을 더해서 R1에 또 왜 넣는건지?

R2, R3도 마찬가지로 밑에 연산이 들어갑니다.


2. MOVS R0, #6 ---> 이 코드의 의미를 잘 모르겠네요...R0레지스터에 왜 6을 넣고 CPSR을 업데이트 하라는건지?


혹시 아시는분 있으시면 답변 좀 부탁드립니다.

번호 제목 글쓴이 날짜 조회 수
공지 [공지] 프로그래밍 관련 Q&A 게시판 입니다. woos 2016.04.09 22254
» ARM asssembler질문좀 드립니다. [3] 빈즈파덜 2014.08.05 2392
417 CPU가 현재 실행중인 PID값 받아오는거 질문드립니다. [2] file 이런Linux 2014.07.15 9523
416 linux kernel governor(onDemand) 질문입니다. hy 2014.07.10 1934
415 DS-5 Steamline관련 질문 [2] jmkim0726 2014.07.09 3023
414 malloc 관련 질문입니다. [8] shepherd44 2014.07.09 3218
413 Subversion 서버 설정간에 에러 메시지 오뎅하나 2014.06.22 2189
412 arm 스터디에 참가하고 싶은데 아는게 너무 없네요. [1] 니미로 2014.06.18 1752
411 Debug Hacks 책 보신 분~ [1] 저스틴 2014.06.17 2149
410 arm보드 리눅스 oops 질문드립니다. [1] 김각래 2014.06.15 2437
409 CONFIG_CPU_V7M 에 대해서 [2] 安종현 2014.06.10 1843
408 ㅎㅎㅎ 어떻게 해석하시나요? [8] 백창우 2014.06.01 2490
407 [Kernel x86_64 & Hypervisor 11차] 스터디에서 선배님들에게 질문과 더불어.. [1] CoderBeast 2014.05.26 1562
406 ARM Instruction set [4] 블루문 2014.05.18 2281
405 이전차수의 x86 kernel 자료들을 볼수가 없습니다. [2] 이영주1 2014.05.09 1678
404 NUMA 시스템에서 memory 할당 관련 [1] 하이디제이 2014.05.08 1999
403 선배님들 ARM Developer's Guide PPT은 어디서 다운 받을 수 있을까요 다이어트킹 2014.05.08 2147
402 [ARM Kernel 11차 B팀] 선배님들께 아키텍쳐 선정과 관련하여 질문드립니다. [1] Luke 2014.04.29 1787
401 SCHED_RR과 SCHED_FIFO는 실시간 스케쥴링인가 아닌가. 인터오아시스 2014.04.28 1908
400 X86 architecture의 구조 좋은 책이 있나요? [2] 이영주1 2014.04.28 2125
399 DS-5 쓰시는 분 계신가요? [3] 삐뿌삐뽀 2014.04.22 1993
XE Login