- 论坛徽章:
- 0
|
[高级]gcc 中 怎么得到 一个变量的 段地址和偏移地址??
既然用的是djgpp,那就按照他的规则来.不要把TC的那一套套在DJGPP的头上.
- 看一下下面两个函数.
- #include <bios.h>;
- int biosdisk(int cmd, int drive, int head, int track,
- int sector, int nsects, void *buffer)
- char buffer[512];
- if (biosdisk(2, 0x80, 0, 0, 0, 1, buffer))
- error("disk");
- #include <bios.h>;
- unsigned _bios_disk(unsigned cmd, struct diskinfo_t *di)
- char record_buffer[512];
- struct diskinfo_t di;
- di.drive = 0x80;
- di.head = 0;
- di.track = 0;
- di.sector = 1;
- di.nsectors = 1;
- di.buffer = &record_buffer;
- if ( _bios_disk(_DISK_READ, &di) )
- puts("Disk error.");
复制代码
只需要上面两个函数应当就可以解决你的问题了.
另外,要注意的是,在2000-XP上面,你应当使用2.03版以上的.否则会出很多问题. |
|