I teach a systems course at Marlboro College which covers some x86 assembler and C, using Bryant and O&#x27;Hallaron&#x27;s &quot;Computer Systems: A Programmer&#x27;s Perspective&quot; textook. ( <a href="http:&#x2F;&#x2F;csapp.cs.cmu.edu&#x2F;" rel="nofollow">http:&#x2F;&#x2F;csapp.cs.cmu.edu&#x2F;</a> ). The course materials include some great labs.<p>My students have particularly liked the &quot;bomb lab&quot; which requires reverse engineering an x86 binary to understand what input it expects, and the stack overflow exercises.<p>Highly recommended.