- 호출자가 인자 전달에 사용된 스택을 파괴 - 호출 당한 함수가 인자 전달에 사용된 스택을 파괴
| segment .data segment .text global _asm_main __asm_main: push 10 ; 스택에 10추가. push 20 ; 스택에 20추가. call asm_add ; 함수 호출 . ; push asm_next ; jmp asm_add add esp, 8 ; 스택 파괴. ; 위에서 8바이트 만큼 스택을 ; 사용했기 때문에 8바이트만큼 ; esp의 위치를 이동. ret asm_add: mov eax, [esp+4] ; []는 C언어에서 역참조 기능을 ; 한다. mov eax, [esp+8] ; |
segment .data segment .text global _asm_main __asm_main: push 10 ; 스택에 10추가. push 20 ; 스택에 20추가. call asm_add ; 함수 호출 . ; push asm_next ; jmp asm_add asm_add: mov eax, [esp+4] ; []는 C언어에서 역참조 기능을 ; 한다. mov eax, [esp+8] ; ret 8 |
'Programming > Assembly' 카테고리의 다른 글
| Return Address (0) | 2010.07.07 |
|---|---|
| 어셈블리에서 사용되는 레지스터 (0) | 2010.07.07 |
| Inline Assembly (0) | 2010.07.07 |
| 어셈블리 기초 명령 (0) | 2010.07.07 |