I just got done demo-ing my 1st MP in my systems engineering class. The TA that did my review was great, he made sure I got as many points as I possibly could have without bending any rules. Though I will preface with what the program was that we were working on, we were working on a rudimentary implementation of missile command in x86. With the majority of our code being for missile location management and drawing everything onto the screen. I was able to get it all working as it should using a user-space test harness that was provided to us. However, when I tried running it in the kernel after adding my assembly file to the kernel and recompiling it, I kept runing into kernel panic. I spent about 5 hours trying to debug it but I just couldn't figure out what it was, all I could piece together is that the value that was in %ESI made the kernel unhappy for some reason. I had also been working on this thing for 5 days straight without much sleep, so I just wanted to get this done with already. Much to my dismay, I wasn't able to get it fixed by the deadline and submitted it as it was. As the TA looked at my code, I was informed that my functions weren't made in line with the x86 calling convention. And that the lack of callee saving is likely what led the kernel to panic. In spite of the program not working in its intended environment, I managed to get a 74/100 on the assignment. Not bad eh?