도무지 이 내용들이 이해가 잘 안가서 모두 AXD로 돌려보고 올립니다.

이해 안가시면 한번 실제로 해보면 좋을 듯합니다.

그럼 이만^^ 퍼가실때 출처 남겨주시길 바랍니다.

작성자 : realdani

***********************************************************************

Decrement Before : 현제 가리키로 있는 곳에서 상위주소(0번지쪽으로) 가리킨후 실행(STMFD)

LDMDB, LDMEA, STMDB, STMFD 는 모두 r13!,{r2-r3}였을 때

만약 r13에 !가 안붙으면 r13의 값은 변하지 않음

LD일 경우,

처음 r13이 #&14일때 마지막은 #&0C를 가리키고,

r2에 Ox000000C번지의 word, r3에는 Ox0000010번지의 word가 들어감


ST일 경우,

처음 r13이 #&14일때 마지막은 #&0C를 가리키고,

r2의 내용이 Ox0000000C번지에, r3의 내용이 Ox00000010번지에 저장됨

**********************************************************************

Decrease Before

LDMDA,LDMFA,STMDA,STMED 모두 r13!,{r2-r3}였을 때

만약 r13에 !가 안붙으면 r13의 값은 변하지 않음

LD인 경우,

처음 r13이 #&14일때 마지막은 #&0C를 가리키고,

r2에는 0x00000010번지의 내용이 들어가고,

r3에는 0x00000014번지의 내용이 들어감,


ST의 경우,

처음 r13이 #&14일때 마지막은 #&0C를 가리키고

r2의 내용이 0x00000010번지에 저장

r3의 내용이 0x00000014번지에 저장


**********************************************************************

Increment Before

STMIB,STMFA,LDMIB,LDMED 모두 r13!,{r2-r3}였을 때

만약 r13에 !가 안붙으면 r13의 값은 변하지 않음

LD일 경우,

처음 r13이 #&14일때 마지막은 #&1C를 가리키고,

r2에 0x00000018번지의 word내용이저장, r3에 0x0000001c의 (내용)word가 저장


ST일 경우,

처음 r13이 #&14일때 마지막은 #&1C를 가리키고,

r2의 내용이 0x00000018번지에, r3의 내용이 0x0000001c에 저장됨



**********************************************************************

Increment After

STMIA,STMEA,LDMIA,LDMFD 모두 r13!,{r2-r3}였을 때

만약 r13에 !가 안붙으면 r13의 값은 변하지 않음

LD일 경우

r13은 0x00000014 -> 0x0000001C로 변함

r2에 Ox00000014번지 내용이 저장

r3에 Ox00000018번지 내용이 저장


ST일 경우

r13은 0x00000014 -> 0x0000001C로 변함

Ox00000014번지에 r2내용이 저장

Ox00000018번지에 r3내용이 저장


출처 : http://blog.naver.com/realdani?Redirect=Log&logNo=100007759984

+ Recent posts