第4章_5 DOS中断调用、简化段 程序设计举例.ppt

第4章_5 DOS中断调用、简化段 程序设计举例.ppt

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

4.2 汇编语言程序设计 一般将公用性、重复性或有相对独立性的程序应设计成子程序 子程序设计 结构: …… …… …… 程序部分 RET NAME ENDP 必须RET结束 NAME PROC NEAR (FAR) 过程名 过程类型 PUSH AX PUSH BX 主程序现场保护 POP BX POP AX 4.2 汇编语言程序设计 子程序设计 子程序的设计与应用应注意的问题 (1)现场的保护 PUSH AX PUSH BX PUSH SI ………… ………… POP SI POP BX POP AX RET 4.2 汇编语言程序设计 子程序设计 子程序的设计与应用应注意的问题 (2)参数的传递 主程序调用子程序必须传递入口参数, 子程序返回必须传递出口参数。 常用的方法有: 寄存器: 适用于参数少的情况。 约定单元: 适用于参数多的情况。要事先建立参数数据缓冲区。 堆栈: 适用于参数较多,且子程序嵌套,递归调用的情况 ;子程序的入口参数: ;SI=数据区的首地址,CX=数据个数 ;出口参数:AL为最大的数 ;用到的寄存器:AX,CX,SI 4.2 汇编语言程序设计 2组8位无符号数,每组中有N个无符号数,分别找出每一组中的最大数,并将最大数存放在每组数的开绐地址。 CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX LEA SI,BUF1 ;入口参数 INC SI ;指向数据开始 MOV CX,N1 ;入口参数 CALL SUBROT MOV BUF1,AL LEA SI,BUF2 INC SI ;指向数据开始 MOV CX,N2 CALL SUBROT MOV BUF2,AL MOV AH,04CH INT 21H SUBROT PROC PUSH CX ;子程序开始 PUSH SI DEC CX ;循环次数为N-1 MOV AL,[SI] ;取第一个数 LOOP1:INC SI ;指向被比较的数 CMP AL,[SI] JA NEXT MOV AL,[SI] NEXT:DEC CX JNZ LOOP1 POP SI POP CX RET SUBROT ENDP DATA SEGMENT BUF1 DB ?,12H,45H……… N1=$-BUF1 BUF2 DB ?,65H,ACH…… N2=$-BUF2 DATA ENDS CODE ENDS END START 演示x43 4.2 汇编语言程序设计 DOS系统功能调用和BIOS中断调用 BIOS:最底层, 硬件系统管理,中断类型号8~1FH。 BIOS DOS 应用程序 软件结构: DOS:BIOS之上的系统管理,硬件和软件更完整管理,特别是磁盘文件的管理。中断类型号20H~2FH 。 DOS和BIOS由几十个独立的中断服务程序组成,为汇编语言程序设计提供了方便,可以完成I/O设备管理,内存管理,文件管理等功能,在汇编语言中可用软中断指令调用它们。 4.2 汇编语言程序设计 DOS系统功能调用和BIOS中断调用 (1)MOV REG,XX ;传送入口参数到指定寄存器中 ;(部分无 入口参数) (2)MOV AH,功能号 ;功能号送入AH寄存器中 (3)INT 21H ;调用 DOS调用方法: (4)返回信息: CF=1表示有错误发生, AX=返回错误代码 CF=0表示调用成功,AX=返回参数 4.2 汇编语言程序设计 1、键盘单字符输入(1号) MOV AH,1 INT 21H 功能:等待从键盘输入一个字符。 返回:(AL)=ASCII码,并回显在显示器上。 DEBUG演示 常用DOS功能调用 : 2、键盘输入字符串(0AH号) MOV DX,OFFSET BUF ;DS:DX为键盘缓冲区 MOV AH,0AH INT 21H 功能:等待从键盘输入一串字符,回车结束。字符串存入键盘缓冲区。 键盘缓冲区定义: BUF DB 81 ;缓冲区的大小 DB ? ;实际输入的字符个数不含0DH DB 80 DUP (?) ;字符串存放区 DEBUG演示 4.2 汇编语言程序设计 3、输出单字符(2号) MOV DL,‘A’ MOV AH,02 INT 21H 功能:将DL中字符从屏幕上输出。 返回:无返回 DEBUG演示 常用DOS功能调用

文档评论(0)

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

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

1亿VIP精品文档

相关文档