====== Memory and M/L ====== This lecture covers memory segments, memory variables, memory instructions, the role of the stack, and machine language (M/L). ===== Outline ===== * The Memory Map * Declaration of Variables in ''.data'' * The Load/Store Family * Spilling Data to the stack * Stack Frames for method invocation * Creating a machine language program * Instruction Formats * Techniques for handling large immediates ===== Big Ideas ===== * Classes and objects are on the heap * Code is in .text * Everything else is in a stack frame on the stack * Implementing Recursion * Fixing the instruction size and varying the format is a good compromise between the simplicity of regularity and the inefficiency of variable-size instructions. ===== Slides from Lecture ===== * [[http://www.cse.yorku.ca/~roumani/course/2021/loadStore.pdf|The Load/Store Family]] * [[http://www.cse.yorku.ca/~roumani/course/2021/ML.pdf|Machine Language]] ===== To Do ===== * Go over the files in the //Resource Directory// * Do the homework given in class (Math.min using stack frames). * Do the homework given in class (translation of the given Recursive.java program). * Read all the sections that we skipped in Chapter 2 (Chapter 3 if you have the old version). * Go over the lectures, the readings, and the labs in preparation for next week's test.