注册 登录
编程论坛 汇编论坛

刚找了一个不错的资料

zhulei1978 发布于 2016-07-11 11:04, 5546 次点击
刚找了一个不错的资料,汇编中断大全,需要的来取:
只有本站会员才能查看附件,请 登录
7 回复
#2
hu9jj2016-07-12 06:56
不错的资料,已经下载备用,谢谢版主。
#3
Valenciax2016-07-12 22:36
刚才约略看了看,发觉某些解释未尽完善,下面挑一些重要的补充一下(红色):

 (2)、功能02H
      功能描述:向标准输出设备(如:屏幕)输出一个字符。该输出还可被重定向,如果这样做,则将无法判断磁盘是否满
      入口参数:AH=02H
      DL=待输出字符的ASCII码
      出口参数:无
      并非没有出口参数,AL会传回最后成功印出的字符,亦即AL原值不保。   


(10)、功能0CH
      功能描述:清空当前的标准输入缓冲区,再读入字符。其输入操作可被重定向
      入口参数:AH=0CH
      AL=01H、06H、07H、08H或0AH
      出口参数:若入口参数AL为0AH,则DS:DX=存放输入字符的起始地址,否则,出口参数AL=输入字符的ASCII码
      AL若非(01H、06H、07H、08H或0AH),比如0,则函数只清空输入缓冲区,不等待而直接返回。

(5)、功能43H
      功能描述:读取或设置指定文件的属性
      入口参数:AH=43H
      BX=文件句柄
      DS:DX=文件名字符串的地址
      AL=00H/01H——读取/设置文件属性
      CX=文件属性: 位0=1——只读位1=1——隐含
      位2=1——系统位3=1——卷标号
      位5=1——归档其它位保留不用,并置为0
      出口参数:CF=0——关闭成功,CX=文件属性,否则,AX=错误号(01H、02H、03H或05H),其含义见错误代码表
      这句错误,功能43H不需文件句柄。想想,既有ds:dx指定档名,又要求句柄,岂不矛盾?
      另外,经常看见一些程式用3Dh或4Eh函数检查档案是否存在,但3Dh麻烦在于又要关闭档案(不关也可以的,只是不规范);
      4Eh麻烦在于须改动DTA(DTA参考4Eh说明)。
      43H,al=0读取文件属性,成功读取表示檔案存在,比3Dh或4Eh方便和快速。


 (8)、功能4EH
      功能描述:获取第一个与给定的文件名相匹配的文件
      入口参数:AH=4EH
      DS:DX=给定文件名的字符串
      CX=搜索时使用的文件属性: 位0=1——只读  位1=1——隐含
      位2=1——系统  位3=1——卷标号
      位4=1——目录  位5=1——归档
      其它位保留不用,并置为0
      出口参数:CF=1——操作失败,AX=错误号(02H、03H或12H),其含义见错误代码表,否则,操作成功,DTA(Disk Transfer
      Area)
按下列方式填入数据: 字节00~14H保留
      字节15H匹配的文件属性
      字节16~17H压缩的文件名
      字节18~19H压缩的文件日期
      字节1A~1DH文件大小
      字节1E~2AH文件名字符串
      DTA是什么?DTA叫(data transfer area),是dos为操作档案保留的一块区域,原位置是PSP:80H,这块地址有两个用途。
      1.程式参数区。
      2.DTA。
      若程式有这两种操作,须自行保留参数,或更改DTA。又,上面提到的文件名字符串在1E~2AH,应该是80h+1E~2AH(其余类推)。当然,
      若改变了DTA,位置就是新DTA的起点+1E~2AH。


5、文件操作功能(FCB)(File Operation Function)
     (6)、功能17H
      功能描述:在指定的驱动器的当前目录中,把所有相匹配的文件换名
      入口参数:AH=17H
      DS:DX=指定文件控制块的地址
      出口参数:AL=00H——换名成功,否则,AL=FFH
      FCB是三叠纪年代的档案操作法,早被档案句柄方式取代,但有一项功能是句柄法也没法取代的,就是LABEL更名。
      LABEL即卷名(volume name),亦即C盘D盘等卷名,除非利用window的API去改,若在dos下,还得靠FCB的17h去改
      (函数56h只能更正常档名,不能改卷名)。


功能34H
      功能描述:获得InDos标志的远地址,它由DOS维护表示DOS时活跃的
      入口参数:AH=34H
      出口参数:ES:BX=InDos标志的远地址
      若该单元值为1,表示DOS功能在执行,否则,则不是。
      dos设计之初没考虑到多工,亦即没有重进入的机制,重进入意即,在dos运作过程中又去呼叫dos,那只会是灾难。
      驻留程式被触动之际,若要使用dos函数,可以先去检查InDos标志,若1则不动作,直至InDos标志=0才继续接下的代码。
      (还有许多细节要考虑,比如函数在1h-0Ch,再呼叫dos是安全的,理由比较复杂,从略)



INT 28H
      功能描述:DOS空闲中断
      入口参数:无
      出口参数:无
      dos运行01-0ch函数会呼叫这中断,驻留程式拦截了int28h,若int28h被触动,表示在dos的1-1ch函數中,
      那便可以尽情使用dos其他函数了。


[此贴子已经被作者于2016-7-13 08:16编辑过]

#4
zhulei19782016-07-13 03:20
强大
#5
丶流浪的风2016-07-14 10:50
已下载备用,谢谢分享
#6
storm_zy2016-09-29 10:34
在查看文档的时候发现有一点小地方错了

int   21h  的功能号 2ch 读取时间时    ch=时   cl=分  dh=秒  文档中错写成 dl了。。。

测试是这样    我是汇编小白    说错了还望指正
#7
八画小子2016-09-30 12:21
这应该算是DOS中断吧?
我这里有BIOS中断,如果有需要的人可以回复,我直接奉献
#8
绿色豆丁2016-11-06 19:08
回复 7楼 八画小子
有文本格式的么
要是现在有一本中断大全的书就好了。以前在别人那里见过一本,外文译本,足足有6,7厘米厚。
1