Verified Jobs Live
x86 Medium Level ~3 min read

Why is a calling convention necessary when one function calls another?

Interactive Practice Mode
Formulate your thoughts or take notes before revealing the model solution.
Model Answer & Deep-Dive Explanation

A calling convention defines how arguments and retu values are passed, which registers the callee must preserve, and how stack-related obligations are handled. Code that violates it can corrupt the caller even if its local arithmetic is correct. Windows x64 and System V AMD64 use different argument registers and stack rules, so never assume all x86-64 code follows one convention. State the platform ABI, preserve required registers, respect stack alignment, and use appropriate unwind information where required. The call instruction alone does not enforce those conventions.