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

汇编语言流程图-1.ppt

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

9.设置中断向量(25H号功能) 25H号功能把由AL指定的中断类型的中断向量DS:DX放置在中断向量表中。具体设置过程为:首先将要设置的中断类型号送AL,然后把要设置的中断服务程序的段地址和偏移量分别送DS、DX,最后再调用25H功能。典型的使用DOS功能调用存取中断向量的程序段如下: …… MOV AL,N ;取出并保存原中断向量 MOV AH,35H INT 21H PUSH BX PUSH ES PUSH DS MOV AX,SEG INTERRUPT MOV DS,AX MOV DX,OFFSET INTERRUPT MOV AL,N MOV AH,25H INT 21H POP DS …… POP DS 恢复原中断向量 POP DX MOV AL,N MOV AH,25H INT 21H MOV AH,4CH ;返回DOS INT 21H INTERRUPT: …… ;中断服务程序 IRET …… 10.读出系统日期(2AH号功能) 本功能子程序的执行,将系统的年、月、日、星期的数据读出,并存入指定的寄存器中: CX ← 年(1980~2099) DH ← 月(1~12) DL ← 日(1~31) AL ← 星期(0—星期日,1—星期一等) 11.设置系统日期(2BH功能) 调用本功能子程序时,必须在CX和DX中设置有效日期,其中,CX中存放年号(1980~2099),DH中存放月号(1~12),DL中存放日(1~31)。如果日期设置有效,待功能子程序返回时,(AL)=0,否则(AL)=0FFH。所以为了检查设置是否成功,通常在调用2BH号功能后检查AL中内容。 12.读出系统时间(2CH功能) 本功能子程序从系统中可得到当时的时间:时、分、秒和百分秒,它们分别存放在CX和DX寄存器中: CH ← 小时 (0~23) CL ← 分 (0~59) DH ← 秒 (0~59) DL ← 百分秒(0~99) 13.设置系统时间(2DH功能) 调用本功能子程序时,必须在CX和DX中设置有效时间(指定有关寄存器和数据范围与2C号功能相同)。如果设置时间有效,从功能子程序返回时,(AL)=0,否则(AL)=0FFH。 图5.13 例5.8的功能实现流程图 参考程序: NUM EQU 36H DATA SEGMENT ARRAY DB 12H,24H,48H,60H,72H,84H Y DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN: MOV AX,DATA MOV DS,AX MOV CX,Y-ARRAY ;循环次数初始化 MOV AL,NUM ;插入值送AL LEA SI,Y DEC SI ;取得ARRAY的最后元素的偏移地址 LOP: CMP ARRAY[SI],AL ;比较 JLE INSERT MOV AH,ARRAY[SI] MOV ARRAY[SI+1],AH ;数据交换 DEC SI ;修改偏移地址 LOOP LOP INSERT: MOV ARRAY[SI+1],AL ;插入数据 MOV AH,4CH INT 21H CODE ENDS END BEGIN §5.5 子程序设计 §5.5.1 子程序的构造 前面我们学习了过程定义伪指令,我们也就是用它们来构成的子程序,其格式为: 子程序名 PROC (NEAR/FAR) 保存信息 …… 恢复信息 RET 子程序名 ENDP §5.5.2 子程序的调用与返回 子程序的正确执行是由子程序的正确调用和返回保证的。IBM PC机的CALL和RET指令就分别完成了子程序的调用和返回功能。 1.调用指令:CALL 过程名 执行CALL指令,首先保留断点地址于堆栈中,然后转移到目标单元,它对PSW无影响。 2.返回指令:RET 一个子程序执行的最后一条指令必定是返回指令RET,用以返回到调用子程序的断点处。但在位置上并不一定就是是最后一条指令。它的位置灵活,并不是必须要在最后。只是习惯上我们通常将它置于子程序的最后。 §5.5.3 编制子程序的要求 1.子程序必须具有通用性 2.注意保存信息和恢复信息 要注意最先压入堆栈的应该最后弹出来,值得注意的是:必须搞清楚那些寄存器是必须保存的,那些又是不必要或不应该保存的。一般来说,子程序中用到的寄存器是应该保存的,但是如果主程序和子程序之间使用寄存器传递参数的话,该寄存器则不一定需要保存,特别是用

文档评论(0)

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

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

1亿VIP精品文档

相关文档