庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>汇编语言>相关源码>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

汇编的的各类源码--getsect

 作者:本站收集   日期:2005-8-1 15:39:03
字号选择〖 〗/ 双击滚屏 单击停止   
;	Absolute Disk Read:  GETSEC  ( uses BIOS interrupt 0x25 )
;
;	Interfaces to Computer Innovations C-86 "c" compiler V1.32 (& later)
;	See DOS 2.10 Technical Reference page 5-10, and Technical Reference
;	page A-32.  This code was written by Mike Sirmans (05-25-84).
;	--------------------------------------------------------------------
;       THIS ROUTINE IS POWERFUL. (AND AS SUCH, IS DANGEROUS IN THE WRONG
;       HANDS).  BE CAREFUL HOW YOU USE IT.  I ASSUME NO RESPONSIBILITY.
;	--------------------------------------------------------------------
;
;	Synopsis:	int getsec(drive,numsec,begsec,buffer)
;			unsigned int drive;	/* 0=A, 1=B, etc. */
;			unsigned int numsec;	/* Number of sectors to read */
;			unsigned int begsec;	/* Beginning logical sector */
;			char *buffer;		/* Transfer address */
;
;	Function:	The number of sectors specified are transferred 
;			between	the given drive and the transfer address. 
;			LOGICAL SECTOR NUMBERS are obtained by numbering
;			each sector sequentially starting from track 0, head 0,
;			sector 1 (logical sector 0) and continuing along the
;			same head, then to the next head until the last sector
;			on the last head of the track is counted.  Thus, 
;			logical sector 1 is track 0, head 0, sector 2,
;			logical sector 2 is track 0, head 0, sector 3,  & so on.
;
;	Returns:	NULL if the operation is successful.
;			otherwise, error codes are as follows:
;
;			hex 80	Attachment failed to respond.
;			hex 40	SEEK operation failed.
;			hex 20	Controller failure.
;			hex 10  Bad CRC on diskette read.
;			hex 08	DMA overrun on operation.
;			hex 04	Requested sector not found.
;			hex 03	Write attempt on write-protected diskette.
;			hex 02	Address mark not found.
;			hex FF	Unspecified (error other than those above).
;
code	segment	byte public		;segment registers remain intact
	assume	cs:code			;all other registers will be destroyed
	public	getsec

getsec: push	bp			;save old frame pointer
	mov	bp,sp			;get new frame pointer
	mov	ax,4[bp]		;put drive number into AL
	xor	ah,ah
	mov	cx,6[bp]		;number of sectors to fetch
	mov	dx,8[bp]		;logical record number of 1st sector
	mov     bx,10[bp]		;pointer to transfer address
	int	25h			;BIOS call
	jc	error			;error has occurred if carry flag = 1
	mov	al,00H			;NULL to indicate sucessful completion
	jmp	done
error:	cmp	al,00H			;detect unspecified error code 00H
	jne	done			;...change to 0FFh if found to 
	mov	al,0FFH			;...differentiate it from success code
done:	xor	ah,ah			;return AL only
	popf				;remove flags int 0x25 left on stack
	pop	bp			;restore original frame pointer
	ret				;all done

code	ends
	end

上一篇:汇编的的各类源码--sound    下一篇:汇编的的各类源码--gameport  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-8-1 15:39:03
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿