计原及汇编-.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计原及汇编-

PUSH AX LEA AX,ASCBUF+10H PUSH AX MOV AX,10H PUSH AX CALL BINASC : PROC PUSH CX PUSH DX PUSH DI PUSH BP MOV BP,SP MOV DX,[BP+14] MOV DI,[BP+12] MOV CX,[BP+10] ROL DX,1 MOV AL,DL AND AL,01H OR AL,30H ;转换子程序段 BINASC LOP: ;调用子程序 ;保存信息 ;取入口地址 ;取1位二进制数 ;转换一位数的ASCII码 MOV [DI],AL INC DI LOOP LOP POP BP POP DI POP DX POP CX RET 6 ENDP : ENDS BINASC COSEG ;存ASCII码 ;恢复信息 用堆栈传递参数处理要点 压入参数 CALL 从栈中弹出压入的参数 用BP间址方式取出参数 处理 RET 主调程序 被调过程 参数压入顺序与取出顺序相反 参数的个数和类型按事先约定存取 调用结束时,从栈中清除压入的参数 多出口子程序设计 子程序返回调用程序时,可以有多个返回点。 例16:有两个字符串STRING1 和STRING2(假设两字符串长度相同),试编制一程序比较两个字符串是否完全相同;根据比较结果,返回调用程序不同位置,以执行不同的程序段。 DATA STRING1 STRING2 DATA COSEG SAME: COMPSTR SEGMENT DB ‘COMPARE STRING’ DB ‘COMPARE STRING’ : ENDS : SEGMENT ASSUME CS:COSEG,DS:DATA : MOV SI,OFFSET STRING1 MOV DI,OFFSET STRING2 CALL COMPSTR JMP SAME ……… : ……… : PROC PUSH AX PUSH CX ;如完全相同转至SAME ;如不相同,从这里开始 ;保存信息 PUSH SI PUSH DI MOV CX,DI SUB CX,SI INC SI INC DI MOV AL,-1[SI] CMP AL,-1[DI] LOOPZ LOP JZ END0 MOV BP,SP ADD [BP+8],3 POP DI POP SI POP CX POP AX RET ENDP ENDS END START LOP: END0: COMPSTR COSEG ;计算字符串长度 ;两字符比较 ;相同,继续比较 ;两字符串完全相同,转移 ;不相同,修改返回点 ;恢复信息 五、系统功能调用 系统功能调用——由OS提供的一组实现特殊功能的子程序供程序员在程序中调用,以减轻编程工作量。 系统功能调用有两种,一种称为DOS功能调用,另一种称为BIOS功能调用。 应用程序 外设硬件接口 BIOS DOS 系统功能调用 采用软中断指令 INT n (其中:n为中断类型码) (1)PUSHF,TF、IF清0,CS、IP入栈 (2)按中断类型码n,从中断向量表对应位置取 出将要调用的功能子程序的入口地址?CS,IP (3)功能子程序返回:IRET DOS功能调用 调用方法: 入口参数 子程序编号送AH INT 21H DOS功能调用 基本I/O功能调用 功能 入口参数 出口参数 说明 键盘输入 AH = 1 AL=字符ASCII码 字符显示 控制台输入 AH = 8 同1号 无显示 显示输出 AH = 2 DL = 字符ASCII码 打印输出 AH = 5 DL = 字符ASCII码 直接控制台 AH = 6 ZF=0,AL=字符ASCII码 输入/输出 DL = 0FFH/字符码 ZF=1无键按下 字符串输出 AH = 9 字符串须以‘$’结束 DS:DX=串首址 字符串输入 AH = 0AH 首先定义缓冲

文档评论(0)

woaitiantian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档