汇编语言+第09章+条件汇编与宏指令

上传人:xh****66 文档编号:61660113 上传时间:2018-12-08 格式:PPT 页数:12 大小:49KB
返回 下载 相关 举报
汇编语言+第09章+条件汇编与宏指令_第1页
第1页 / 共12页
汇编语言+第09章+条件汇编与宏指令_第2页
第2页 / 共12页
汇编语言+第09章+条件汇编与宏指令_第3页
第3页 / 共12页
汇编语言+第09章+条件汇编与宏指令_第4页
第4页 / 共12页
汇编语言+第09章+条件汇编与宏指令_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《汇编语言+第09章+条件汇编与宏指令》由会员分享,可在线阅读,更多相关《汇编语言+第09章+条件汇编与宏指令(12页珍藏版)》请在金锄头文库上搜索。

1、第九章 条件汇编与宏指令,9.1 条件汇编伪操作 9.2 宏伪操作,条件汇编伪操作和宏伪操作命令也是伪指令的一部分,具有条件汇编宏伪操作功能的汇编程序称为宏汇编程序。Microsoft的MASM就是宏(MACRO)汇编程序,它提供了丰富的条件汇编伪操作和宏伪操作命令。,9.1 条件汇编伪操作,条件汇编伪操作允许用户在编制汇编语言程序时规定某种条件,汇编程序在汇编过程中测试条件是否成立,当条件成立时,则将某段汇编语言源程序汇编为目标程序,否则,不进行汇编。 Microsft宏汇编程序提供了十种条件汇编伪操作命令, IF,IF1,IF2,IFE,IFDEF,IFNDEF,IFB,IFNB,IFID

2、N, FDIF。 格式: Ifx cont : 若干语句(称为条件块) ELSE(可选的) : JB)若干语句(称为条件块) ENDIF,9.1 条件汇编伪操作,(1) IF CONT 当条件表达式CONT值不是零时,条件为真。 (2) IFE CONT 当条件表达式CONT值为零时,条件为真。 (3) IF1 如果是第一遍扫描,条件为真。 (4) IF2 如果是第二遍扫描,条件为真。 (5) IFDEF CONT 此操作中的条件CONT是一个符号,如果这个符号已经定义,或者已用EXTRN伪指令说明,则条件为真。 (6) IFNDEF CONT 该伪操作中的条件CONT是一个符号,如果此符号未

3、定义或未经EXTRN伪指令说明,则条件为真。 (7) IFB 如果尖括号中为空,则条件为真。 (8) IFNB 如果尖括号中不为空,则条件为真。 (9) IFIDN , CHR1和CHR2为字符串,如果两个字符串相同,则条件为真。(10) IFDIF, CHR1和CHR2为字符串,如果两个字符串不相同,则条件为真。,9.1 条件汇编伪操作,举例: E91.ASM,9.2 宏伪操作,9.2.1 宏定义与宏结束伪操作命令 9.2.2 参数的使用 9.2.3 宏中的标号处理 9.2.4 宏嵌套 9.2.5 宏与子程序的区别,9.2.1 宏定义与宏结束伪操作命令,宏定义的一般格式 MNAME MACR

4、O DUMPAR1,DUMPAR2 : : 宏体 : ENDM 举例:E92.ASM,9.2.2 参数的使用,1. 用参数代替寄存器名字 2. 用参数代表自定义符号和数值 3. 用参数代表指令 4. 用参数代表任何一字符串或子字符串 举例: E93.ASM,9.2.3 宏中的标号处理,1. 把标号定义为参数形式 举例:E94.ASM 2. 在宏定义中声明标号为局部标号 格式: LOCAL LAB1,LAB2 举例:E95.ASM,9.2.4 宏嵌套,宏嵌套有两种形式:宏定义中嵌套宏定义和宏定义中嵌套宏调用,两种宏嵌套的深度不限。 1. 宏定义中嵌套宏定义,MAC1 MACRO MAC2 MAC

5、RO MAC3 MACRO ENDM ENDM ENDM,当宏定义中嵌套宏定义时,必须首先调用最外层宏定义,然后才能调用内层宏定义。下面是一个宏嵌套的例子。,例9.6 用嵌套的形式定义将AL中的数据转换为两个十六进制数的ASCII码的宏指令。,BHTOA1 MACRO MOV AH,AL AHHN MACRO LOACAL AHHN1 MOV CL,4 SHR AH,CL CMP AH,10 JC AHHN1 ADD AH,7 AHHN1: ADD AH,30H ENDM ALLN MACRO LOCAL ALLN1 AND AL,0FH CMP AL,10 JC ALLN1 ADD AL,7

6、 ALLN1: ADD AL,30H ENDM ENDM,有如下宏调用: BHTOA1 AHHN ALLN,则宏扩展后得到如下程序段: BHTOA1 1 MOV AH,AL AHHN 1 MOV CL,4 1 SHR AH,CL 1 CMP AH,10 1 JC ?0000 1 ADD AH,7 1 ?0000: ADD AH,30H ALLN 1 AND AL,0FH 1 CMP AL,10 1 JC ?0001 1 ADD AL,7 1 ?0001: ADD AL,30H,2. 宏定义中嵌套宏调用,MACA MACRO MACB ENDM MACB MACRO ENDM 各宏定义可单独调用。,例:利用宏定义嵌套宏调用的形式,定义将AL中的数据转换为两位十六进制数的ASCII码。,9.2.5 宏与子程序的区别,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号