设置dos中断新功能精选.docVIP

  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文档。上传文档
查看更多
设置dos中断新功能精选

[返回首页] - [索引页面] - [文章列表] 主题:怎样增加一个自定义的系统功能调用(内详) 7、请编写一DOS程序,为INT21H增加AH=0FFH子功能,作用是将BL中的非压缩BCE码转换为ASCII码,以方便其他程序的使用。 其中的BCD码转换我自已会. 关键是这个DOS程序的结构是怎样的, 写好后要放在什么位置. 使使我们在汇编中用语句 mov ah 0ffh int 21h 可以调用到这个子函数. 回复人:cnvb(千里冰封) 一级(初级) 信誉:100 2004-12-23 16:58:42 得分:10 1.保存INT21中断的原程序调用地址 2.用自己所写的程序地址替换原INT21程序地址 3.当INT21被调用时检测AH是不是OFFH如果是的话就调用那个转换程序,不是的话转INT21原地址继续运行. 这只是偶个人意见,不是之处还请大虾们指教!!! TOP 回复人:kokblack(人人为我,我为人人) 四级(中级) 信誉:99 2004-12-23 17:33:14 得分:0 这个方法和自己写中断向量表的方法差不多。就是不知具体用什么指令! TOP 回复人:jk88811(文哥) 二级(初级) 信誉:98 2004-12-24 0:59:31 得分:10 用INT 21H 里的25H和35H 功能保存原中断向量和修改成你的中断处理程序入口地址,然后就可以调用中断啦! 具体找课本吧 TOP 回复人:awcx(高高在上) 一级(初级) 信誉:99 2004-12-25 11:09:07 得分:0 高手 TOP 回复人:kokblack(人人为我,我为人人) 四级(中级) 信誉:99 2004-12-25 12:05:50 得分:0 不太同意 jk88811(文哥)的说法,他好像是要自己定义一个21h的一个功能号吧。 TOP 回复人:jk88811(文哥) 二级(初级) 信誉:98 2004-12-25 12:17:54 得分:0 难道楼主的意思不是这样吗? mov ah 0ffh int 21h 可以调用到这个子函数. 这是楼主要的效果呀 TOP 回复人:hejunhard(开坦克去买菜) 一级(初级) 信誉:100 2004-12-26 11:31:14 得分:0 感谢各位帮忙,我按大家意思写了如下程序,错在哪? DAT SEGMENT PARA DAT ADDRESS DW ? DAT ENDS CODE SEGMENT PARA CODE ASSUME DS:DAT,CS:CODE MAIN PROC FAR START: PUSH DS XOR AX,AX PUSH AX MOV AX,DAT MOV DS,AX MOV AL,21H MOV AH,35H INT 21H ;取原中断向量到BX中 MOV ADDRESS,BX;保存此中断向量 PUSH DS MOV AX,0 MOV DS,AX LEA DX,DOS MOV AL,21H MOV AH,25H INT 21;设置新的中断向量 POP DS MOV BL,8 MOV AH,0FFH;调用自定义中断处理子函数 INT 21H RET MAIN ENDP DOS PROC FAR CMP AH,0FFH JE CHANGE PUSH CS JMP ADDRESS ;跳到原中断向量处执行 CHANGE:ADD BL,30H;转成ASCII码 RET DOS ENDP CODE ENDS END START TOP 回复人:clumsy(Kyrie eleison) 一星(中级) 信誉:270 2004-12-26 12:07:49 得分:20 中断向量是 4 字节的远程入口, 你获取时只保存了 offset, 转移到原来的中断向量, 以及自己例程的返回的方法也就相应地错了. 自己的代码, 既然重置了中断向量, 要么在自己的程序结束前恢复原来的中断入口, 要么自己的程序以驻留方式结束, 而不能和普通程序似的简单地终止, 否则, 后面运行的程序很可能崩溃, 在你这里, 则肯定是会有问题的! TOP 回复人:hejunhard(开坦克去买菜) 一级(初级) 信誉:100 2004-12-26 12:32:02 得分:0 什么是驻留方式结束,为什么以这种方式就不会崩溃. TOP 回复人:hejunhard(开坦克去买菜) 一级(初级) 信誉:100 2004-12-26 13:39:10 得分:

文档评论(0)

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

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

1亿VIP精品文档

相关文档