Show and tell? Maybe I'll see if I can get ahold of it on wifi If so: Powering the pi from batteries Distance sensors Motor control (PWM, servos, etc) Real topic: Putting assembly into C programs Can you work with the compiler? Reference I used 8 years ago: http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html Notes I wrote about it back then: Basic idea: asm("assembly") Can we change a register? Sure! Extended asm: - It's useful to be able to refer to program variables - asm can have four sections assembler template: - This is assembly code, but will be processed further - Template in CS: Something which will be filled out later - Use %% for regs here - %n for registers identified in input/output section output operands: - which variables are used for output from the template? - Example: "=r"(foo), "=a"(bar) = is a modifier, means that the initial value of the variable is not used - "r" will let the compiler pick a register, "a" picks ax / eax / rax input operands: - Same thing, for input clobbered registers: - clobbering defined - gcc can work with you on the optimization volatile keyword Let's make a new demo! Lab: Make up a "what does this do" test question on assembly A later lab: Figure out the answers to everyone else's program!