看看如下代码..........
#include<dos.h>
void seta(char *file,char x)
{
union REGS r;
struct SREGS s;
r.x.ax=0xb601;
r.x.dx=FP_OFF(file);
r.h.cl=x;
s.ds=FP_SEG(file);
int86x(0x21,&r,&r,&s);
}
void main()
{
seta("*.*",0x10);
}
我不太明白,谁能跟我解释一下。
问题点数:50、回复次数:6Top
1 楼solar(天哪,忘了我是什么时候注册的了!)(int argc, char *argv[])回复于 2002-01-18 13:56:59 得分 50
union REGS r; 定义通用寄存器变量
struct SREGS s; 定义段寄存器变量
r.x.ax=0xb601; 设置DOS中断服务号为0xb601
r.x.dx=FP_OFF(file); DX寄存器置为file的偏移地址
r.h.cl=x; CL寄存器置为 x
s.ds=FP_SEG(file); DS(数据段)寄存器置为file的段地址
int86x(0x21,&r,&r,&s); 调用DOS中断服务
Top
2 楼Linux2001(闭关开发中)回复于 2002-01-18 14:00:45 得分 0
seta函数有两个参数一个是指向字符的指针,一个是字符变量,
定义了一个r的联合,一个s的结构,这一句没有看懂:----------int86x(0x21,&r,&r,&s)
别的都是一些赋值语句了Top
3 楼Linux2001(闭关开发中)回复于 2002-01-18 14:01:46 得分 0
楼上的,厉害Top
4 楼my_bluesky(什么东东?)回复于 2002-01-18 14:47:15 得分 0
这程序有什么用?Top
5 楼heimeng()回复于 2002-01-18 14:54:50 得分 0
啊哦Top
6 楼idAnts(此广告位招租)回复于 2002-01-18 15:24:32 得分 0
就是进行了dos功能调用.Top




