[질문] 11장: vector_swi의 어셈블리 코드에서 스택을 푸시하는 동작

Guillermo Austin Kim|2021년 4월 10일
Posts

[질문] 11장: vector_swi의 어셈블리 코드에서 스택을 푸시하는 동작

Guillermo Austin Kim|2021년 4월 10일

질문) 우선 vector_swi의 어셈블리 코드중 첫 번째 라인인 sub sp, sp, #72 부분에서 굳이 sp의 위치를 조절해주는 이유를 모르겠습니다.그냥 sp에 바로 레지스터 세트들을 push하면 안되는건가요?? 또한 스택공간에서 72byte를 확보하는 것도 이해가 잘 가지 않습니다.분명 저장하는 4byte의 레지스터는 13개 이므로 52byte면 충분하다고 생각합니다. 혹시 다른 용도가 있어서 더 큰 용량을 확보하는 걸까요?? 출처: http://rousalome.egloos.com/9986480#230057 대답) 좋은 질문을 주셨는데요. 스택공간에서 72 바이트를 확보하는 이유는, 유저 공간에서 실행된 레지스터 세트를 struct pt_regs 구조체로 관리하기로 약속했기 때문입니다.