网站大量收购独家精品文档,联系QQ:2885784924

接口技术第4章(4.6)模块化程序设计技术.ppt

接口技术第4章(4.6)模块化程序设计技术.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
接口技术第4章(4.6)模块化程序设计技术

“ ” 4.6模块化程序设计技术 1. 全局符号的定义与引用 单个模块中使用的符号(变量、标号或子程序名)为局部符号。一个模块中定义的符号如不另加说明,均为局部符号,局部符号只能在定义它的模块中使用。 多个模块可共同使用的符号为全局符号。只要将局部符号在定义和使用它的模块中分别用 PUBLIC 和EXTRN语句说明,即可作为全局符号(又称外部符号)使用,全局符号构成了模块间通信的主要渠道。 2. 模块间的转移 模块间的转移有两种:近(段内)转移和远(段间)转移。它们都是通过转移语句来实现的。具体实现转移的语句是:JMP、CALL 和 INT。 3. 多个模块的组合形式 NONE 表示本段为独立段,不与其他模块段发生连接逻辑。 PUBLIC 表示将本段与其他模块中说明为PUBLIC的同名段邻接在一起,共用一个段地址。组成一个大的物理段(“段组”)。 STACK 表示将该段与其他同名的堆栈段连接在一起,组合后的物理段的长度等于参与组合的各堆栈段的长度之和。 COMMON 各模块中由COMMON方式说明的同名段重叠覆盖,重叠部分的内容取决于参与覆盖的最后一个段的内容,复合段的长度等于参与覆盖的最长的段的长度。 MEMORY 表示该段将位于被链接在一起的其他段之上(高地址处),如果链接时出现多个段有MEMORY组合类型,将对第一个MEMORY的段赋予这一属性,其他段作COMMON段处理。 例1:键盘输入十进制数,以十六进制形式在屏幕上显示。 ;模块A 文件名MAIN. ASM EXTRN PROMPT:FAR,BINHEX:FAR ;引用外部符号 PUBLIC DEC—NUM,KEY—IN ;定义外部符号 SSEG SEGMENT PARA STACK ‘ STACK ’ DB 100 DUP( ?) SSEG ENDS DSEG1 SEGMENT DEC—NUM DW ? DSEG1 ENDS CSEG1 SEGMENT ASSUME CS:CSEG1,DS:DSEG1 START: MOV AX,DSEG1 MOV DS,AX ;装入段基址 PUSH DS JMP FAR PTR PROMPT KEY—IN: CALL DECBIN ;键盘输入十进制数 MOV DEC—NUM,BX ;二进制数DEC—NUM CALL FAR PTR BINHEX ;以十六进制形式显示 MOV AH,4CH INT 21H ;返回DOS ;从键盘输入十进制数,将其转换为二进制数并送BX DECBIN PROC NEAR MOV BX,0 ;累加和BX(已转换的二进制)初始化 GETCHAR: MOV AH,1 INT 21H SUB AL,30H ;键入值是否在0~9之间? JL EXIT ;否,转至EXIT CMP AL,09H JG EXIT MOV AH,0 ;是,将AX中的BCD数与BX内容交换 XCHG

文档评论(0)

netball + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档