汇編语言程序设计 第8章高级语言汇编技术 宏汇编 重复汇编 条件汇编伪指令
汇编语言 程序设计 第8章 高级语言汇编技术 ◆ 宏汇编 ◆ 重复汇编 ◆ 条件汇编伪指令
汇編语言程序设计 8.1宏汇编 在编写汇编语言程序的过程中,有时某个程序 段要出现许多次,有时只是参数不同,但功能完全 羊,则这样的程序段可以定义成一个指令,并且 称它为宏指令。 8.1.1宏定义 若想在汇编语言中使用宏指令,就要定义一个 宏。按照是否使用参数,可以将宏指令分为如下两 种格式。 1.不带参数的宏定义 宏指令名 MACRO 宏体
汇编语言 程序设计 8.1 宏汇编 在编写汇编语言程序的过程中,有时某个程序 段要出现许多次,有时只是参数不同,但功能完全 一样,则这样的程序段可以定义成一个指令,并且 称它为宏指令。 8.1.1 宏定义 若想在汇编语言中使用宏指令,就要定义一个 宏。按照是否使用参数,可以将宏指令分为如下两 种格式。 1. 不带参数的宏定义 宏指令名 MACRO ┇ 宏体 ENDM
汇編语言程序设计 2.带参数的宏定义 宏指令名 MACRO形参1,形参2 宏体 ENDM 例8.2】将两个存储单元数据交换的程序段定义成一个宏指 令 EXCH MEM。 EXCH MEM MACRO MEM 1 MEM 2. REG MOV REG MEM 1 XCHG REG. MEM 2 MOV MEM 1. REG ENDM MEM1.MEM2.REG是形式参数。形参可以是多个,各个形参 之间用逗号相隔。对于带参数的宏定义,宏体中程序段有些部分允 许宏调用时作适当修改。在宏定义中,把允许修改的分用形式参数 (称形参)来表示,当宏调用时就用相应的实参数来取代
汇编语言 程序设计 2.带参数的宏定义: 宏指令名 MACRO 形参1,形参2,… ┇ 宏体 ENDM 【例8.2】将两个存储单元数据交换的程序段定义成一个宏指 令EXCH_MEM。 EXCH_MEM MACRO MEM_1,MEM_2,REG MOV REG,MEM_1 XCHG REG,MEM_2 MOV MEM_1,REG ENDM MEM_1,MEM_2,REG是形式参数,形参可以是多个,各个形参 之间用逗号相隔。对于带参数的宏定义,宏体中程序段有些部分允 许宏调用时作适当修改。在宏定义中,把允许修改的分用形式参数 (简称形参)来表示,当宏调用时就用相应的实参数来取代
汇編语言程序设计 8.1.2宏调用和宏展开 宏调用 在汇编语言中使用已定义过的宏指令,称 为宏调用。按照宏指令定义的格式,宏调用也 可分为两种格式。 (1)无参数宏调用:宏指令名 (2)带参数宏调用:宏指令名实参1,实参2
汇编语言 程序设计 8.1.2 宏调用和宏展开 1. 宏调用 在汇编语言中使用已定义过的宏指令,称 为宏调用。按照宏指令定义的格式,宏调用也 可分为两种格式。 (1) 无参数宏调用:宏指令名 (2) 带参数宏调用:宏指令名 实参1,实参2,…
汇編语言程序设计 2.宏展开 当宏汇编程序扫描到宏指令语旬(即宏调 用)时,宏汇编程序就把宏指令定义中宏体的 程序段代码替代宏指令语句。若是带参数的宏 调用.则同时用相应的实参替代宏体中对应形 参的位置,并对原有宏体代码作修改。 下面是一个源程序的列表文件,它展示了 宏定义、宏调用和宏展开的全部过程。在列表 文件中,左边带“+”号的指令是宏汇编程序 在宏展开时自动生成的指令。宏定义本身不生 成任何目标代码,宏指令语句本身也不生成目 标代码,它仅表示宏调用出现的位置
汇编语言 程序设计 2. 宏展开 当宏汇编程序扫描到宏指令语句(即宏调 用)时,宏汇编程序就把宏指令定义中宏体的 程序段代码替代宏指令语句。若是带参数的宏 调用,则同时用相应的实参替代宏体中对应形 参的位置,并对原有宏体代码作修改。 下面是一个源程序的列表文件,它展示了 宏定义、宏调用和宏展开的全部过程。在列表 文件中,左边带“+”号的指令是宏汇编程序 在宏展开时自动生成的指令。宏定义本身不生 成任何目标代码,宏指令语句本身也不生成目 标代码,它仅表示宏调用出现的位置