1. Caller & Callee

1. Caller & Callee

1-1) Caller(ํ˜ธ์ถœํ•จ) & Callee(ํ˜ธ์ถœ ๋‹นํ•จ) Image

Untitled

โ†’ ์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด main() ํ•จ์ˆ˜์—์„œ func() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ–ˆ์Œ.

โ†’ main() ํ•จ์ˆ˜๋ฅผ Caller๋ผ๊ณ  ํ•˜๊ณ  func() ํ•จ์ˆ˜๋ฅผ Callee๋ผ๊ณ  ํ•จ.

โ†’ main() ํ•จ์ˆ˜๋Š” ์‹คํ–‰ํ•˜๋ฉด์„œ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•จ. ๊ทธ๋ฆฌ๊ณ  func() ํ•จ์ˆ˜๊ฐ€ ๋ชจ๋‘ ์‹คํ–‰๋˜๊ณ 

โ†’ ๋‹ค์‹œ main() ํ•จ์ˆ˜๋กœ ๋˜๋Œ์•„์™”์„ ๋•Œ func()๊ฐ€ ํ˜ธ์ถœ๋˜๊ธฐ ์ด์ „์˜ ๋ ˆ์ง€์Šคํ„ฐ์˜ ๊ฐ’์„ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•จ.

โ†’ ์ด๋•Œ Caller๊ฐ€ ์ €์žฅํ•˜๊ณ  ๋ณด์กด๋˜๋„๋ก ์‹ ๊ฒฝ์จ์•ผ ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ Caller-Saved-Register๋ผ๊ณ  ํ•˜๋ฉฐ

โ†’ Callee๋Š” ์ด ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ.

1-2) Caller-Saved-Register(์ฝœ๋Ÿฌ๊ฐ€ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ)

Caller๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์ „ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—…ํ•ด์•ผ ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ,

Callee๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๊ฐ’์ด ๋ณด์กด๋˜์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๋ฐฑ์—…ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ.

ex) EAX, ECX, EDX

1-3) Callee-Saved-Register(์ฝœ๋ฆฌ๊ฐ€ ์ €์žฅํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ)

Callee๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ์ „ ๋ฐ˜๋“œ์‹œ ๋ฐฑ์—…ํ•ด์•ผ ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ, Caller๋Š” ์‚ฌ์šฉ๊ฐ€๋Šฅ.

Callee์˜ ์ž…์žฅ์—์„œ๋Š” Caller๊ฐ€ ๋ฐฑ์—…์„ ํ•„์š”๋กœ ํ•˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—

๋ฌด์กฐ๊ฑด ๋ฐฑ์—…ํ•ด์•ผ ํ•จ.

ex) EBX, ESI, EDI, EBP