CSCI 2400 Lecture Notes - Lecture 7: Application Binary Interface, Memory Management, Increment And Decrement Operators
Document Summary
X86-64 implementation of a procedure uses only those mechanisms required. **machine instructions implement the mechanisms, but the choices are determined by designers. Different regions have different purposes (like abi, a policy decision) Register %rsp contains lowest stack address pushq src. Write operand at address given by %rsp popq dest. Read value at address given by %rsp. Store value at dest (usually a register) **the memory doesn"t change, only the value of %rsp. Use stack to support procedure call and return. Address of the next instruction right after call. Need some place to store state of each instantiation. State for given procedure needed for limited time. Remember, movl -> %eax zeros out high order 32bits. Actually, used for what it is meant. Contents of register %rdx overwritten by who. This could be trouble (cid:736) something should be done. Caller saves temporary values in tits frame before the call. Callee saves temporary values n its frame before using.