汇编全集之第7章 高级汇编语言技术课件.ppt

汇编全集之第7章 高级汇编语言技术课件.ppt

ID:57138408

大小:165.50 KB

页数:85页

时间:2020-08-01

汇编全集之第7章  高级汇编语言技术课件.ppt_第1页
汇编全集之第7章  高级汇编语言技术课件.ppt_第2页
汇编全集之第7章  高级汇编语言技术课件.ppt_第3页
汇编全集之第7章  高级汇编语言技术课件.ppt_第4页
汇编全集之第7章  高级汇编语言技术课件.ppt_第5页
资源描述:

《汇编全集之第7章 高级汇编语言技术课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章高级汇编语言技术7.1宏汇编7.2重复汇编7.3条件汇编习题77.1宏汇编在程序设计中,为了简化程序的设计,将多次重复使用的程序段用宏指令代替。宏指令是指程序员事先定义的特定的“指令”,这种“指令”是一组重复出现的程序指令块的缩写和替代。宏指令定义后,凡在宏指令出现的地方,宏汇编程序总是自动地把它们替换成对应的程序指令块。宏指令有时也称为宏,包含宏定义和宏调用。使用宏指令的好处是:简化源程序的编写,传递参数灵活,功能更强。7.1.1宏指令的定义、调用和展开1.宏指令的定义宏是源程序中的一段具有独立功能的程序代码。它只要在源程序中定义一次,就可以多次调用,调用时只要

2、使用一个宏指令语句就可以了。宏指令定义由开始伪指令MACRO、宏指令体、宏指令定义结束伪指令ENDM组成。格式如下:宏指令名MACRO[形式参数1,形式参数2,…,形式参数N];宏指令体(宏体)ENDM其中,宏指令名是宏定义为宏体程序指令块规定的名称,可以是任一合法的名字,也可以是系统保留字(如指令助记符、伪指令操作符等),当宏指令名是某个系统保留字时,则该系统保留字就被赋予新的含义,从而失去原有的意义。MACRO语句到ENDM语句之间的所有汇编语句构成宏指令体,简称宏体,宏体中使用的形式参数必须在MACRO语句中列出。形式参数是出现在宏体内某些位置上可以变化的符号,也

3、可以是任一合法的名字,甚至是寄存器名。如果形式参数中使用某些寄存器名,那么在宏汇编展开时,将不认为这些寄存器名是寄存器本身,而是形式参数,并被实际参数所代替。形式参数可以缺省,也可以有一个或多个。当形式参数多于一个时,形式参数之间用逗号隔开。定义宏指令时,每行的字符数不能多于132个。宏指令定义一般放在源程序的开头,以避免产生不应发生的错误。宏指令必须先定义后调用(引用)。宏指令可以重新定义,也可以嵌套定义。嵌套定义是指在宏指令体内还可以再定义宏指令或调用另一宏指令。【例7-1】定义一条从键盘输入一个字符的宏指令INPUT。INPUTMACROMOVAH,1INT21H

4、ENDM定义了宏指令语句INPUT之后,就可直接将其用于编程。【例7-2】定义一条换行宏指令LF。LFMACROMOVDL,10MOVAH,2INT21HENDM【例7-3】定义一条回车宏指令CR。CRMACROMOVDL,13MOVAH,2INT21HENDM2.宏指令的调用宏指令一旦定义后,就可以用宏指令名字(宏名)来引用(或调用),这个引用过程即为宏调用。宏调用的格式为宏指令名实际参数1,实际参数2,…,实际参数N其中,“实际参数”的类型和顺序要与形式参数的类型和顺序保持一致,宏调用时将一一对应地替换宏指令体中的形式参数。当有两个以上参数时,中间用逗号、空格或制表

5、符隔开。宏指令调用时,实际参数的数目并不一定要和形式参数的数目一致。当实参个数多于形参的个数时,忽略多余的实参;当实参个数少于形参个数时,多余的形参用空串代替。【例7-4】定义一条INOUT宏指令,既可以引用它输入一串字符,也可引用它显示一串提示字符。宏定义:INOUTMACROX,YMOVAH,XLEADX,YINT21HENDM宏调用:DATASSEGMENTINPUTDB'PLEASEINPUTANYCHARACTERS:','$'KEYBUFDB10,11DUP(?),13,10,'$'DATASENDSCODESSEGMENTASSUMECS:CODES,DS

6、:DATASSTART:PUSHDSXORAX,AXPUSHAXMOVAX,DATASMOVDS,AXINOUT9,INPUT;显示一串提示符的宏指令调用LF;换行,引用例7-2宏定义CR;回车,引用例7-3宏定义INOUT10,KEYBUF;输入一串字符的宏指令调用LFCRINOUT9,KEYBUF+2;显示输入的一串字符的宏指令调用RETCODESENDSENDSTART3.宏指令的展开宏汇编程序若遇到宏指令定义时并不对它进行汇编,只有在程序中引用的时候,汇编程序才把对应的宏指令体调出并进行汇编处理(语法检查和代码块的插入),这个过程称宏展开(或宏扩展)。宏指令调用

7、后,在宏指令调用处产生用实参替换形参的宏体指令语句。在MASM汇编生成列表文件(.LST文件)的每行中间用符号“+”作为标志,表明本行语句为宏指令展开生成的语句。本章为说明是宏展开生成的语句,在语句的左边仍用符号“+”标志。例如,上述INOUT宏指令调用后,宏展开后的语句如下:+MOVAH,9+LEADX,INPUT+INT21H+MOVDL,10+MOVAH,2+INT21H+MOVDL,13+MOVAH,2+INT21H+MOVAH,10+LEADX,KEYBUF+INT21H+MOVAH,9+LEADX,KEYBUF+2+INT21

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。