| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1077 人关注过本帖
标题:关于printf函数的格式符问题
取消只看楼主 加入收藏
zxming50
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-3
收藏
 问题点数:0 回复次数:3 
关于printf函数的格式符问题
一个关于引导扇区数据的提取:不过提取出来的结果跟用DISKEDIT.EXE提取出来的不一样.一般是算法出现在错误
    请大家帮我解释一下这段码:
  我把代码附上:
#include   <dos.h>
#include   <stdio.h>
#include   <alloc.h>

  int   main()   
  {   
              union   REGS   i,o;//定义联合体 寄存器  i,o
              struct   SREGS   es;   
              FILE   *   f;   
          char *s=(char*)malloc(512);    //s是由远堆分配的指针,是个带段地址:偏移量的指针
          i.h.ah=0x02;//赋值初始化,等同于汇编的ah=ox02为入口参数指定功能号;
              i.h.al=1;   //h表示byteregs,AL为要读取的扇区数;
              i.h.ch=0;   
              i.h.cl=1;   //CL高2位+CH=柱面号,CL低6位=扇区号;
              i.h.dh=0;   //DH磁头号;
              i.h.dl=0x80;   //DL表示磁盘号;
              i.x.bx=(unsigned   short)s; //x表示wordregs
              es.es=FP_SEG(s);   //第一个es表示定义的段寄存器,第二个es表示sregs中的一个体结构.函数是获取远指针*S段地址的值。
   
CS:BX=存放读取数据的内存缓冲地址~~~~出口参数:CS:BX=读取数据存放地址~~~错误信息:如果出错CF=1 AH=错误代码


              printf("   s=%Fp,SS=%x,DS=%x,ES=%x",s,_SS,_DS,_ES);   
   
              int86x(0x13,&i,&o,&es);   
              f=fopen("C:\\Partable.bin","w+b");   
              fwrite(s,512,1,f); 写入数据块的地址,数据块的大小,数据块的数目,指定要写入的文件  
              fclose(f);   
              free(s);   
  }
我还想问一下,关于printf函数中的s=%Fp这个格式符的意思.
搜索更多相关主题的帖子: 符问题 printf 函数 格式 
2008-03-12 14:01
zxming50
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-3
收藏
得分:0 
没有人回答。希望各位高手帮帮忙,我找了一周的资料,查了很多的信息,不管是对是错,大家一起说出来讨论给我个思考方向也是万分的感谢!!!小弟在此谢过了~~~
2008-03-12 21:41
zxming50
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-3
收藏
得分:0 
但是程序可以运行,只是结果不正确,%P是显示指针的地址,我想%Fp会不会是显示远指针的地址,不过资料查不到。。。嘿嘿。。。
继续努力探索…^-^
2008-03-12 23:07
zxming50
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-5-3
收藏
得分:0 
问题己解决,由于该程序编译后受系统保护机制和内存分配机制等因素的影响,所以不能读取硬盘主引导扇区的数据.但是可以在DOS里面读取出来.
2008-03-14 14:34
快速回复:关于printf函数的格式符问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027510 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved