What is the difference between a JMP ("jump") instruction and a CALL ("call") instruction? Where might each type of branching command be used? Hint: one of these is used to execute a subroutine.
Discuss the concept of a subroutine with your students, and how subroutines economize program size.
An important feature of microprocessors is the use of flag registers. What, exactly, is a "flag", and what are they used for in microprocessor programming? Identify some common machine-language commands that set flags, and some common commands that read flags.
When I began learning microprocessor programming, I wondered how conditional operations such as JZ "knew" whether to jump or not. It was apparent from inspection of various programs that these conditional operations based their "decision" on the command immediately preceding, but I had no idea how this communicative link was made. Once I researched flags, though, it all made sense.