电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

接口技术第4章(4.6)

25页
  • 卖家[上传人]:san****019
  • 文档编号:70807069
  • 上传时间:2019-01-18
  • 文档格式:PPT
  • 文档大小:338.81KB
  • / 25 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、4.6模块化程序设计技术 1. 全局符号的定义与引用 单个模块中使用的符号(变量、标号或子程序名)为局部符号。一个模块中定义的符号如不另加说明,均为局部符号,局部符号只能在定义它的模块中使用。 多个模块可共同使用的符号为全局符号。只要将局部符号在定义和使用它的模块中分别用 PUBLIC 和EXTRN语句说明,即可作为全局符号(又称外部符号)使用,全局符号构成了模块间通信的主要渠道。 2. 模块间的转移 模块间的转移有两种:近(段内)转移和远(段间)转移。它们都是通过转移语句来实现的。具体实现转移的语句是:JMP、CALL 和 INT。,3. 多个模块的组合形式 NONE 表示本段为独立段,不与其他模块段发生连接逻辑。 PUBLIC 表示将本段与其他模块中说明为PUBLIC的同名段邻接在一起,共用一个段地址。组成一个大的物理段(“段组”)。 STACK 表示将该段与其他同名的堆栈段连接在一起,组合后的物理段的长度等于参与组合的各堆栈段的长度之和。 COMMON 各模块中由COMMON方式说明的同名段重叠覆盖,重叠部分的内容取决于参与覆盖的最后一个段的内容,复合段的长度等于参与覆盖的最长的

      2、段的长度。 MEMORY 表示该段将位于被链接在一起的其他段之上(高地址处),如果链接时出现多个段有MEMORY组合类型,将对第一个MEMORY的段赋予这一属性,其他段作COMMON段处理。,例1:键盘输入十进制数,以十六进制形式在屏幕上显示。 ;模块A 文件名MAIN. ASM EXTRN PROMPT:FAR,BINHEX:FAR ;引用外部符号 PUBLIC DECNUM,KEYIN ;定义外部符号 SSEG SEGMENT PARA STACK STACK DB 100 DUP( ?) SSEG ENDS DSEG1 SEGMENT DECNUM DW ? DSEG1 ENDS CSEG1 SEGMENT ASSUME CS:CSEG1,DS:DSEG1,START: MOV AX,DSEG1 MOV DS,AX ;装入段基址 PUSH DS JMP FAR PTR PROMPT KEYIN: CALL DECBIN ;键盘输入十进制数 MOV DECNUM,BX ;二进制数DECNUM CALL FAR PTR BINHEX ;以十六进制形式显示 MOV AH,4CH INT

      3、 21H ;返回DOS,;从键盘输入十进制数,将其转换为二进制数并送BX DECBIN PROC NEAR MOV BX,0 ;累加和BX(已转换的二进制)初始化 GETCHAR: MOV AH,1 INT 21H SUB AL,30H ;键入值是否在09之间? JL EXIT ;否,转至EXIT CMP AL,09H JG EXIT MOV AH,0 ;是,将AX中的BCD数与BX内容交换 XCHG AX,BX MOV CX,0AH ;累加和AX乘以当前权值 MUL CX XCHG AX,BX ADD BX,AX ;送累加和 BX JMP GETCHAR EXIT: RET DECBIN ENDP CSEG1 ENDS END START,;模块B 文件名SUB. ASM EXTRN DECNUM:WORD,KEYIN:FAR PUBLIC PROMPT,BINHEX SSEG SEGMENT PARA STACK STACK DB 200 DUP ( ?) SSEG ENDS DSEG2 ENDS CSEG2 SEGMENT PARA ASSUME CS:CSEG2,DS:DSEG

      4、2 PROMPT: MOV AX,DSEG2 MOV DS,AX ;装入段基址 LEA DX,MSG MOV AH,09H INT 21H POP DS JMP FAR PTR KEYIN,;将DECNUM中的二进制数转换为十六进制数的ASCII 码并输出 BINHEX PROC FAR MOV BX,DECNUM MOV CH,04H ;共有4位十六进制数 ROTATE: MOV CL,04H ROL BX,CL ;取最4bit二进制数待转换 MOV AL,BL AND AL,0FH ADD AL,30H ;十六进制数 ASCII码 CMP AL,3AH ;十六进制数在09之间吗? JL PRINTIT ;是,输出 ADD AL,07H ;否,再加上07H PRINTIT: MOV DL,AL ;输出单个字符 MOV AH,02H INT 21H DEC CH JNZ ROTATE ;继续下次转换 RET BINHEX ENDP CSEG2 ENDS END,例2:求无序表中的最大元素及其位置 ;模块A, 文件名MAIN.ASM EXTRN FOUND:NEAR DATA1 SEGM

      5、ENT ARRAY DB d1,d2,d3, dn COUNT EQU $ ARRAY ;数据个数 DATA1 ENDS CODE SEGMENT WORD PUBLIC CODE ASSUME CS:CODE,DS:DATA1 MAIN: MOV AX,DATA1 MOV DS,AX ;装入段基址 MOV CX,COUNT LEA SI,ARRAY CALL FOUND ;找出最大元素及位置 MOV AH,4CH INT 21H CODE ENDS END MAIN,;模块B,文件名SUB.ASM PUBLIC FOUND DATA2 SEGMENT MAX DB ? PLACE DB ? DATA2 ENDS CODE SEGMENT WORD PUBLIC CODE ASSUME CS:CODE,FOUND PROC NEAR MOV DH,1 MOV DL,0 DEC CX MOV AL,SI COMP: CMP AL,SI+1 JG BIGGER MOV AL,SI+1 MOV DL,DH BIGGER: INC SI INC DH LOOP COMP ASSUME DS:D

      6、ATA2 MOV BX,DATA2 MOV DS,BX MOV MAX,AL MOV PLACE,DL RET FOUND ENDP CODE ENDS END,例1; D_SEG SEGMENT W DW 8120 ;数据定义 X DW 40 Y DW 16 Z DW 480 RESULT DW 2 DUP( ?) D_SEG ENDS S_SEG SEGMNET PARA STACK STACK DW 100 DUP( ?) S_SEG ENDS C_SEG SEGMENT ASSUME CS:C_SEG,DS:D_SEG START: MOV AX,D_SEG ;填入段地址 MOV DS,AX MOV AX,X ;X+120 ADD AX,120 IMUL Y ;(X+120)X Y MOV CX,AX ;乘积暂时存BX:CX MOV BX,DX MOV AX,W ;将W带符号扩展 CWD SUB AX,CX ;实现W(X+120)X Y SBB DX,BX ;结果在DX:AX中 ADD AX,200 ;实现W(X+120)X Y+200 ADC DX,0 ;结果在DX,AX中

      7、IDIV Z ;最后除以Z,结果商在AX,余数在DX中 MOV RESULT,AX ;存放结果到数据区 MOV RESULT+2,DX MOV AH,4CH ;返回到DOS INT 21H C_SEG ENDS END START ;汇编结束,例1:BCD码转换为二进制数 设AX寄存器中存放着4位BCD码(09999),将其转换成二进制数并仍存于AX中,BCD码即用4位二进制数表示一个十进制数的编码。所以AX=9827H表示值为9827 该程序算法是: (万位数0+千位数)10+百位数10+十位数10+个位数 W10 DW 10 ;十进制数权值 ;子程序名:BCDTO2。 入口参数:AX=BCD码。出口参数:AX=二进制数。 BCDTO2 PROC NEAR PUSH BX PUSH CX PUSH DX MOV BX,AX ;保存AX中的BCD码到BX MOV AX,0 ;结果单元清零 MOV CX,4 ;共处理4位BCD码,RETRY: PUSH CX MOV CL,4 ROL BX,CL ;1位BCD码移到BX中的低半字节 POP CX MUL W10 ;累加和AX 10 DX:AX PUSH BX AND BX,000FH ;取出BX中的1位BCD码 ADD AX,BX ;累加到AX中 POP BX LOOP RETRY POP DX POP CX POP BX RET BCDTO2 ENDP,例2:二进制数转换为BCD码 编程将AX中的二进制数转换成4位BCD码,转换的结果放在AX中(设AX中的数值小于十进制数10000)。 算法:将AX中的二进制数除以1000得到的商是千位上的BCD码,所得余数除以100得到的商是百位上的BCD码,所得余数再除以10得到的商是十位上的BCD码,最后所得的余数是个位上的BCD码。 W1000 DW 1000,100,10 , 1 ;十进制

      《接口技术第4章(4.6)》由会员san****019分享,可在线阅读,更多相关《接口技术第4章(4.6)》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.