高级汇编语言技术

高级汇编语言技术

ID:42853924

大小:252.51 KB

页数:27页

时间:2019-09-24

高级汇编语言技术_第1页
高级汇编语言技术_第2页
高级汇编语言技术_第3页
高级汇编语言技术_第4页
高级汇编语言技术_第5页
资源描述:

《高级汇编语言技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章高级汇编语言技术宏指令宏指令的使用过程宏操作符局部符号伪指令LOCAL宏库的使用重复汇编条件汇编宏指令在汇编语言程序设计过程中,可以将具有一定功能,需多次重复使用,且比较短的程序段定义成一条宏指令。使用宏指令语句可以减少程序书写错误,缩短源程序长度,使源程序编写像高级语言一样清晰、简洁。特别是使用宏库后,可以提高编程效率。宏指令的使用过程1.宏定义2.宏调用3.宏扩展宏定义(1)带参宏定义宏指令名MACRO形参1,形参2,……宏体ENDM(2)无参宏定义宏指令MACRO宏体ENDM宏调用格式:

2、宏指令名[实参1,实参2,……]例如:对上面的宏定义的三种调用形式为:┆PRINTBUF1┆PRINTBUF2┆PRINTBUF3┆宏扩展┆+LEADX,BUF1+MOVAH,9+INT21H┆+LEADX,BUF2+MOVAH,9+INT21H┆+LEADX,BUF3+MOVAH,9+INT21H┆例如:上面三次宏调用,其展开的形式为:宏操作符1.文本操作符【例】在程序中定义大小及初值不同的堆栈段。可用如下宏定义:DSTACKMACROASTACKSEGMENTSTACKDBASTACKENDSE

3、NDM【例】表达符操作%示例。DATA1MACROA,B,C,DDWA,B,CDBDDUP(0)ENDM如果宏调用为:X=10Y=20DATA1%X+2,5,%X+Y,%Y-5DATA1X+2,5,X+Y,Y-5则相应的宏扩展为:+DW12,5,30+DB15DUP(0)+DWX+2,5,X+Y+DBY-5DUP(0)局部符号伪指令LOCAL【例】局部符号伪指令LOCAL应用。SUMMACROX,YLOCALLMOVCX,XMOVBX,YMOVAX,0L:ADDAX,BXINCBXLOOPLENDM

4、如果两次调用宏指令如下:┆SUM100,1┆SUM50,1┆则宏扩展形式为:┆MOVCX,100MOVBX,1MOVAX,0??0000:ADDAX,BXINCBXLOOP??0000┆MOVCX,50MOVBX,10MOVAX,0??0001:ADDAX,BXINCBXLOOP??0001┆宏库的使用语句格式:INCLUDE库文件名假设已建立一名为MACRO.LIB的宏库,其内容如下:INPUTMACROALEADX,AMOVAH,10;10号系统功能调用INT21HENDMPRINTMACROA

5、LEADX,AMOVAH,9;9号系统功能调用INT21HENDMRETURNMACROMOVAH,2MOVDL,0AHINT21HMOVDL,0DH;回车换行INT21HENDMOUT2MACROAMOVDL,AMOVAH,2;2号系统功能调用INT21HENDMSTACK0MACROASTACKSEGMENTSTACKDBASTACKENDSENDM现要从键盘输入一串字符到系统缓冲区,然后将字符按相反顺序打印,采用调用宏库的办法,其程序如下:INCLUDEMACRO.LIBSTACK0〈200D

6、UP(0)〉;定义堆栈段DATASEGMENTINF01DB‘INPUTSTRING:$’INF02DB‘OUTPUTSTRING:$’BUFADB81DB?DB80DUP(0)BUFBDB81DUP(0)DATAENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AXRETURN;输出回车换行PRINTINFO1;输出字符变量INFO1代表的字符串INPUTBUFA;键盘输入字符中到缓冲区;LEASI,BUFA+1M

7、OVCH,0MOVCL,[SI]ADDSI,CXLEADI,BUFBNEXT:MOVAL,[SI]MOV[DI],ALDECSIINCDILOOPNEXTMOVBYTEPTR[DI],‘$’RETURN;输出回车换行PRINTINF02;输出的字符串变量INF02代表PRINTBUFB;反向输出输入字符串MOVAH,4CHINT21HCODEENDSENDSTART重复汇编1.给定次数的重复汇编伪指令语句格式:REPT表达式重复块ENDM功能:宏汇编程序将重复块连续地汇编表达式给定的次数。2.不定次

8、数的重复汇编伪指令,有IRP和IRPC两种伪指令。【例】某一源程序需要多次将AX,BX,CX,DX寄存器的内容压入堆栈,则可定义如下宏指令。PUSHRMACROIRPREG,〈AX,BX,CX,DX〉PUSHREGENDMENDM调用上述宏定义后,将展开成下列语句:+PUSHAX+PUSHBX+PUSHCX+PUSHDX又如:IRPW,〈1122H,3344H,5566H,7788H〉DWWENDM汇编程序在汇编时将产生语句:+DW1122H,3344H,5566H,

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

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

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