describe: describe literal numbers / constants, bases, format for hex number (e.g. $abc, 0xabc), how hex number beginning with $ differs for location counter which is $ on its own. describe octal base numbers (e.g. 0776) expression folding (assember evaluated expressions) - static evaluation V dynamic evaluation strings, string delimiters, special escape sequences (brief intro to format strings with ref to more detailed explanation) expressions involving strings (generating strings) converting strings to labels and vica versa using string in place of label or as name of assembler variable explain about label definitions not being restricted to starting in column 1, the benefits and potential pitfalls (pro: allows definition to be indented depending on conditional assembly, con: allows undefined macros to be mistaken for label definitions) describe comments (always need ';' even at end of machine instruction) describe valid label format, always begins with [a-zA-Z] can include any char [a-zA-Z0-9_], can be any length. stress that case is important in labels explain about location counter refering to words in program space (.code) and bytes in data space (.data) explain about indf and fsr explain about label phase errors * macro defined after first use * non local label used in macro * conditional statement including code in one pass but not the other * label defined using .equ statment refers to relocatable code or data section (use assembler variable instead) * using assembler variable value that is not generated the same way for each pass * using conditional assembly conditional on defined label before label is defined - first pass will see the label as undefined, second pass will see the label as defined. give concrete examples of operators | or & and ^ xor ~ complement || logical or && logical and ! logical not >> shift right << shift left explain about the logical values 0 and 1 returned by the logical operators and how these values can be used in static expressions as well as conditional and loop statements. give concrete examples involving strings, numbers and labels (using the defined assembler function) > greater than >= greater than or equal to < less than <= less than or equal to == equal to != not euqal to explain about macro argument seperators ',' also difference between formal parameters and actual parameters. also about null actual parameters explain about macro recursion explain about no linker explain how assembler listing contains fully relocated absolute listing (sections are ordered according to group statements and addresses are added to assembler listing - sometimes out of lexical order because of the group/section requirements) explain how the output is generated in hex (and which hex format is used). explain about what files are generated (e.g. *.lst, *.hex, *.xsm, *.dbg)