FacebookTwitter

خواندن سکتورهای فلاپی دیسک با استفاده از زبان C

نویسنده: | تاریخ: ۲۵ آبان ۱۳۸۹ | موضوع: برنامه سازی سیستم | بدون دیدگاه

Share On GoogleShare On FacebookShare On Twitter

دانشجویان درس نرم افزار سیستم با استفاده از کد نمونه زیر میتوانند نحوه خواندن سکتورهای دیسک را آموخته و در پروژه خود به کار گیرند. این کد توسط آقای علی منتجب آماده گردیده است.

BOOTSEC.CPP
 #include <dos.h>     //int86x(), macros FP_SEG() and FP_OFF(),
                      //segread(), union REGS, struct SREGS
 #include <stdio.h>   //printf()

 #include <stdlib.h>  //_doserrno
 #include <iostream.h>//cout

 unsigned char buf [512];

 void main()
 {
   unsigned char far * bufptr;
   union REGS inregs, outregs;
   struct SREGS segregs;

   segread(&segregs);
   bufptr = (unsigned char far *) buf;
   segregs.es = FP_SEG(bufptr);
   inregs.x.bx = FP_OFF(bufptr);
   inregs.h.ah = 2; //BIOS function number

   inregs.h.al = 1; //Number of sectors
   inregs.h.ch = 0; //Track number of boot sector
   inregs.h.cl = 1; //Sector number of boot sector

   inregs.h.dh = 0; //Head number
   inregs.h.dl = 0; //Drive number(A:)
   int86x(0x13, &inregs, &outregs, &segregs); // Read sector

   if (outregs.x.cflag)
      printf("ERR #%d: status = %d, # sectors read = %dn",
      _doserrno, outregs.h.ah, outregs.h.al);
   else
      cout<<(int)buf[0x11]; //Root directory entries
 }

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Pin It on Pinterest

Shares