Microprocessor and microcontroller organization; assembly language and programming techniques, bus and memory organization, direct memory access, timing issues, interrupts, peripheral devices, serial and parallel communication, timing analysis, and interfacing to analog and digital systems.