【课前思考】
  1. 宏汇编技术与子程序技术相比有哪些优、缺点?它们的工作方式有何差别?
  2. 虚参与实参是否应一一对应?
  3. 哑元表中的变元可以取何种值?
  4. &操作符及%操作符如何应用?
  5. 宏定义体内的程序段有标号怎么办?
  6. 宏定义允许嵌套、递归调用吗?
  7. IRP与IRPC之间的区别?
  8. 条件汇编中有哪几种条件?
  9. 高级语言结构中有哪几种形式?



  学习目标】
  了解并掌握宏汇编、重复汇编及不定重复汇编、条件汇编和高级语言结构编程技术。


  【学习指南
  学习宏汇编时注意与子程序技术做比较。通过多看举例,掌握哑元表变元取值、宏定义的嵌套、递归调用等难点技术。
  与高级编程语言相比较地学习重复、不定重复、条件汇编以及几种高级语言结构汇编技术。

  【难重点
  宏调用的优点、宏调用和子程序调用工作方式的差别
  虚参与实元
  哑元表中的变元取值的多样性
  &操作符
  %操作符
  LOCAL伪操作解决宏定义体中的符号问题
  宏定义的嵌套、递归
  重复汇编
  不定重复汇编
  条件汇编中的多种条件
  高级语言结构中的几种汇编形式

  【知识点
  7.1 宏汇编
   7.1.1 宏定义、宏调用和宏展开
      宏定义体、宏指令名、哑元表、形式参数、实元表
      宏调用的优点、宏调用和子程序调用工作方式的差别
   7.1.2 宏定义中的参数
      宏定义可以无变元
      变元可以是操作码
      &操作符可以把前后两个符号合并形成操作码、操作数或是一个字符串。
      %操作符把跟在它之后的表达式的值转换成当前基数下的数,在宏展开期间,用这个数来取代哑元。
      := 操作符
      :REQ操作符
   7.1.3 LOCAL伪操作
   7.1.4 在宏定义内使用宏
      宏定义必须先定义后调用。允许嵌套、递归
   7.1.5 列表伪操作
      MASM提供 .XALL、.LALL和 .SALL控制汇编清单中宏展开的列出情况
      MASM6用.LISTMACROALL、.LISTMACRO和 .NOLISTMACRO提供相应功能
      ;;伪操作符
   7.1.6 宏库的建立与调用
   7.1.7 PURGE伪操作

  7.2 重复汇编
   7.2.1 重复伪操作
   7.2.2 不定重复伪操作
    7.2.2.1 IRP伪操作
    7.2.2.2 IRPC伪操作
        REPEAT、FOR和FORC伪操作
        :VARARG伪操作

  7.3 条件汇编

  7.4 高级语言结构