도무지 이 내용들이 이해가 잘 안가서 모두 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
[출처] LDMDB, LDMEA, STMDB, STMFD등등 명령어 실제 예|작성자 다니