微机基础-206.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文档。上传文档
查看更多
微机基础-206

第4章 汇编语言程序设计 该程序具有双重循环结构: 内循环控制完成对一个字符的处理, 外循环控制完成字符串中CNT个字符的处理。 例 统计一个字符串对应的ASCII码串中二进制“1”的个数。 第4章 汇编语言程序设计 流程图 外循环初始化:计数结果清0; 预置取字符指针;预置外循环次数 开 始 外循环次数减1:(CL) =(CL)-1 外循环条件判断:(CL)≠0? N Y PUSH DS SUB AX, AX PUSH AX MOV AX, DAT MOV DS, AX LOP2: CMP AL, 0 JE LOP3 EXT: RET MOV AL, 0 MOV NUM, AL MOV SI, OFFSET STR1 MOV CL, CNT SHL AL, 1 JNC LOP2 INC NUM JMP LOP2 LOP3: DEC CL 内循环初始化:取一个字符送入AL 内循环条件判断:(AL)≠0? LOP1: LODSB (CF) = 1? 累计“1”的个数:NUM =NUM+1 Y (CF) = (AL)左移一位 N 更新取字符指针:(SI)=(SI)+1 Y 结束 N JNZ LOP1 第4章 汇编语言程序设计 ;-- 数据段定义 DAT SEGMENT STR1 DB ‘ABCDEFG’ ; 定义字符串(最长不超过32个字符) CNT EQU $ - STR1 ; 统计字符串中字符个数 NUM DB ? ; 存放统计结果( ‘1’的总个数256 ) DAT ENDS ; 代码段定义 COD SEGMENT ASSUME DS: DAT, CS: COD MAIN PROC FAR PUSH DS ; 保存返回地址 SUB AX, AX PUSH AX MOV AX, DAT MOV DS, AX ; 初始化DS ;外循环开始 MOV AL, 0 ; 外循环初始化 MOV NUM, AL MOV SI, OFFSET STR1 MOV CL, CNT 第4章 汇编语言程序设计 ;内循环开始 LOP1: LODSB ; 内循环初始化,取字符同时更新指针 LOP2: CMP AL, 0 ; 内循环控制 JE LOP3 ; (AL)=0,不满足循环条件,退出内循环 SHL AL, 1 ; 内循环体(同时修改循环控制条件) JNC LOP2 ; 当前位不为“1”,进入下一次内循环 INC NUM ; 当前位为“1”,计数值加1 JMP LOP2 ; 进入下一次内循环 ;内循环结束 LOP3: DEC CL ; 外循环控制 JNZ LOP1 ; (CL)≠0,满足循环条件,进入下一次外循环 ;外循环结束 EXT: RET MAIN ENDP COD ENDS END MAIN 操作系统资源使用 IBM PC微机系统为汇编用户的数据输入输出提供了两种资源: 一种是与硬件相关的基本输入输出系统, 即ROM中的BIOS; 一种是DOS系统功能调用,即操作系统为用户提供的使用输入输出设备的系统资源。 在多用户和多任务的环境下,与硬件有关的ROMBIOS资源只允许操作系统这个特殊用户使用,一般用户只可以使用操作系统为用户提供的INT 21H提供的功能调用。 系统功能调用和BIOS都是由一系列的子程序构成的,但调用和返回不是使用子程序调用指令CALL和返回指令RET,而是通过软中断 INT n 和中断返回指令 IRET 调用和返回。 DOS系统功能调用和BIOS的服务子程序,使得程序设计人员不必涉及硬件即可以实现对系统的硬件尤其是I/O的使用与管理。 调用BIOS/DOS功能子程序的基本方法 BIOS/DOS的每个功能子程序都对应着一个子程序文件。 使用时,直接用一条软中断指令INT n(n称为中断类型号)。 BIOS中的 n=5~1FH …… DOS软中断中的 n=20H,21H,23H~2AH…… DOS功能调用 类型号 中断功能 类型号 中断功能 20H 程序结束 21H 请求DOS功能调用 22H 结束地址 23H 中止(Ctrl-Break)处理 24H 关键性错误处理 25H 磁盘顺序读 26H 磁盘顺序写 27H 程序结束且驻留内存 28H DOS内部使用 29~2EH DOS内部保留 2FH DOS内部使用 30~3FH DOS内部保留 与DOS相比,BIOS是在更低的层次上为用户提供系统服务 DOS系统功能调用 DOS系统功能调用

文档评论(0)

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

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

1亿VIP精品文档

相关文档