接口技术第4章(4.6)

接口技术第4章(4.6)

ID:38305462

大小:338.81 KB

页数:25页

时间:2019-06-08

接口技术第4章(4.6)_第1页
接口技术第4章(4.6)_第2页
接口技术第4章(4.6)_第3页
接口技术第4章(4.6)_第4页
接口技术第4章(4.6)_第5页
资源描述:

《接口技术第4章(4.6)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4.6模块化程序设计技术1.全局符号的定义与引用单个模块中使用的符号(变量、标号或子程序名)为局部符号。一个模块中定义的符号如不另加说明,均为局部符号,局部符号只能在定义它的模块中使用。多个模块可共同使用的符号为全局符号。只要将局部符号在定义和使用它的模块中分别用PUBLIC和EXTRN语句说明,即可作为全局符号(又称外部符号)使用,全局符号构成了模块间通信的主要渠道。2.模块间的转移模块间的转移有两种:近(段内)转移和远(段间)转移。它们都是通过转移语句来实现的。具体实现转移的语句是:JMP、CALL和INT。3.多个模块的组合形式NO

2、NE表示本段为独立段,不与其他模块段发生连接逻辑。PUBLIC表示将本段与其他模块中说明为PUBLIC的同名段邻接在一起,共用一个段地址。组成一个大的物理段(“段组”)。STACK表示将该段与其他同名的堆栈段连接在一起,组合后的物理段的长度等于参与组合的各堆栈段的长度之和。COMMON各模块中由COMMON方式说明的同名段重叠覆盖,重叠部分的内容取决于参与覆盖的最后一个段的内容,复合段的长度等于参与覆盖的最长的段的长度。MEMORY表示该段将位于被链接在一起的其他段之上(高地址处),如果链接时出现多个段有MEMORY组合类型,将对第一个M

3、EMORY的段赋予这一属性,其他段作COMMON段处理。例1:键盘输入十进制数,以十六进制形式在屏幕上显示。;模块A文件名MAIN.ASMEXTRNPROMPT:FAR,BINHEX:FAR;引用外部符号PUBLICDEC—NUM,KEY—IN;定义外部符号SSEGSEGMENTPARASTACK‘STACK’DB100DUP(?)SSEGENDSDSEG1SEGMENTDEC—NUMDW?DSEG1ENDSCSEG1SEGMENTASSUMECS:CSEG1,DS:DSEG1START:MOVAX,DSEG1MOVDS,AX;装入段基址

4、PUSHDSJMPFARPTRPROMPTKEY—IN:CALLDECBIN;键盘输入十进制数MOVDEC—NUM,BX;二进制数DEC—NUMCALLFARPTRBINHEX;以十六进制形式显示MOVAH,4CHINT21H;返回DOS;从键盘输入十进制数,将其转换为二进制数并送BXDECBINPROCNEARMOVBX,0;累加和BX(已转换的二进制)初始化GETCHAR:MOVAH,1INT21HSUBAL,30H;键入值是否在0~9之间?JLEXIT;否,转至EXITCMPAL,09HJGEXITMOVAH,0;是,将AX中的BC

5、D数与BX内容交换XCHGAX,BXMOVCX,0AH;累加和AX乘以当前权值MULCXXCHGAX,BXADDBX,AX;送累加和BXJMPGETCHAREXIT:RETDECBINENDPCSEG1ENDSENDSTART;模块B文件名SUB.ASMEXTRNDEC—NUM:WORD,KEY—IN:FARPUBLICPROMPT,BINHEXSSEGSEGMENTPARASTACK‘STACK’DB200DUP(?)SSEGENDSDSEG2ENDSCSEG2SEGMENTPARAASSUMECS:CSEG2,DS:DSEG2PROM

6、PT:MOVAX,DSEG2MOVDS,AX;装入段基址LEADX,MSGMOVAH,09HINT21HPOPDSJMPFARPTRKEY—IN;将DEC—NUM中的二进制数转换为十六进制数的ASCII码并输出BINHEXPROCFARMOVBX,DEC—NUMMOVCH,04H;共有4位十六进制数ROTATE:MOVCL,04HROLBX,CL;取最4bit二进制数待转换MOVAL,BLANDAL,0FHADDAL,30H;十六进制数ASCII码CMPAL,3AH;十六进制数在0~9之间吗?JLPRINTIT;是,输出ADDAL,07H

7、;否,再加上07HPRINTIT:MOVDL,AL;输出单个字符MOVAH,02HINT21HDECCHJNZROTATE;继续下次转换RETBINHEXENDPCSEG2ENDSEND例2:求无序表中的最大元素及其位置;模块A,文件名MAIN.ASMEXTRNFOUND:NEARDATA1SEGMENTARRAYDBd1,d2,d3,…dnCOUNTEQU$—ARRAY;数据个数DATA1ENDSCODESEGMENTWORDPUBLIC‘CODE’ASSUMECS:CODE,DS:DATA1MAIN:MOVAX,DATA1MOVDS,

8、AX;装入段基址MOVCX,COUNTLEASI,ARRAYCALLFOUND;找出最大元素及位置MOVAH,4CHINT21HCODEENDSENDMAIN…;模块B,文件名SUB.ASMP

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

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

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