: 아주 기초적인 겁니다.
:
: 스택오버플로우를 보다가
: unsigned long get_sp( void )
: {
: __asm__( "movl %esp, %eax" );
: }
:
: 란 내용이 있던데요...
:
: movl A, B 라고 하면
: B의 값을 A로 복사하는 건가요, 아니면
: A의 값을 B로 복사하는 건가요...
:
: 쉽죠?
:
: 확실한 답변 부탁드립니다.
:
: 한가지 더...
:
: 스택에서 보면
:
: 100번지 200 300 400
: +-----------------+-----+-----+-------------+
: |지역변수.... | SFP | RET | 파라미터... |
: +-----------------+-----+-----+-------------+
: |abc019d8d.... | 900 | 800 | d987f2... |
: +-----------------+-----+-----+-------------+
:
: 대충 이런 식일텐데... get_sp()가 반환하는 값이
: SFP의 주소인 200을 반환하는 건가요?
: 아니면 SFP가 가지고 있는 값인 900을 반환하는 건가요?
:
: 물론 위의 100, 200, 300... 등은 편의상 임의로 잡은 것입니다.
:
: 그럼 두 가지 질문에 대한 답변 부탁드립니다... ^^
:
: --
: 리눅서되기 절라 힘들다
1. mov A,B이면 A->B입니다.
따라서 sp를 ax에 저장하죠 ...
ax라 함은 모든 서브루틴에서 돌아올때의 return 값입니다.
2. 파라미터 오른쪽의 주소 아닌가요?
(인텔은 제가 잘 몰라서리 ...)
^^