CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他开发语言 >  汇编语言

菜鸟急救

楼主seagle(莫等闲.白了少年头.空悲切!)2001-10-24 20:13:36 在 其他开发语言 / 汇编语言 提问

我不小心把硬盘的引导程序的分区类型改动了,启动无法识别硬盘连FDISK   都不能用,请问、高手有什么办法吗?    
  是这样的    
  debug    
  a    
  mov   ax,   201    
  mov   bx,   200    
  mov   cx,   1    
  mov   dx,   80    
  int   13    
  int   3    
  g=100    
  e3c2    
  这里我把原来的0C改为了 02然后就可想而知了, 请问有什么好的办法吗最好不好再次格式化,    
   
  问题点数:10、回复次数:20Top

1 楼CodeDemon(CWL)回复于 2001-10-24 20:54:55 得分 0

没看清楚你讲什么.Top

2 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-24 21:02:26 得分 0

就是把硬盘分区表里面的分区类型修改了,别的什么都没有改变,但是已经无法访问硬盘FDISK   也没有用,我记得以前是0C   被我改为02后就出现了这样的问题(重新启动后)  
  屏幕左上角,  
  C>   TYPE   THE   NAME   OF   THE   COMMAND   INTERPRETER   (E.G.,   C:\WINDOWS\COMMAND.COM)Top

3 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-24 21:14:09 得分 0

80   01    
  01   00   06   EF   7F   14   3F   00   00   00   11   E8   3F   00   00   00    
  41   15   05   EF   BF   2A   50   E8   3F   00   60   23   40   00   00   00    
  00   00   00   00   00   00   00   00   00   00   00   00   00   00   00   00    
  00   00   00   00   00   00   00   00   00   00   00   00   00   00   55   AA    
   
  我改的就是0100     后面的字节这里是06,我机器上本来是0CTop

4 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-24 21:15:03 得分 0

上面的就是硬盘分区表信息   Top

5 楼小乖(Xi@oGu@i)回复于 2001-10-24 21:24:36 得分 0

。。。Top

6 楼QIC(秋至满山多秀色,春来无处不花香。)回复于 2001-10-25 00:07:27 得分 0

能用软盘启动吗?  
  如果能用软盘启动,把它改回来就可以了。  
  如果不能用软盘启动,找一个低版本的DOS做一张系统启动盘,用它启动后再改回来。  
  不要运行FDISK,就用DEBUG进行修改。Top

7 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-25 08:48:48 得分 0

能用软盘启动,但是我在软盘中无法用DEBUG   调出硬盘分区表,请问该如何调出呢?我准备了一张系统盘上面有DEBUG.COM   但是   在软盘上不知道如何调出我刚才修改过的地方   !Top

8 楼netter_bj(问题男孩)回复于 2001-10-25 09:35:25 得分 0

难道用你刚才的代码   不能读取硬盘数据?Top

9 楼QIC(秋至满山多秀色,春来无处不花香。)回复于 2001-10-25 10:11:25 得分 5

请按下面方法操作。  
   
  A:\>debug  
  -a  
  0100           MOV           AX,0201                                                          
  0103           MOV           BX,0200                                                          
  0106           MOV           CX,0001                                                          
  0109           MOV           DX,0080                                                          
  010C           INT           13                                                                    
  010E           INT           3                                                                      
  010F           MOV           AX,0301                                                          
  0112           JMP           0103                                                                
  -g=100  
  -d   3c0  
  看看debug显示的是不是分区表信息,如果是说明硬盘可读写。  
  然后:  
  -e3c2  
  你原来是把0C改为02,那么现在就把02改回0C。改完后执行:  
  -g=10f  
  执行完后把软盘取出,按下Ctrl+Alt+Del重新启动就OK了。  
   
  Top

10 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-25 10:28:54 得分 0

我回去试一试,谢谢你Top

11 楼CNer(Leemaasn)回复于 2001-10-25 12:37:38 得分 0

屏幕左上角,  
  C>   TYPE   THE   NAME   OF   THE   COMMAND   INTERPRETER   (E.G.,   C:\WINDOWS\COMMAND.COM)    
   
  这段话,,,就是你的电脑从硬盘启动后现实的信息?还是什么?  
  要是出现这段话。。。。  
  那没什么关系。。。  
  我们机房的电脑经常被人乱改,你用一张启动盘启动电脑后。。。  
  输入sys   c:  
  应该可以,,,,  
  要是还有其他什么问题。。。  
  再提出来。。。。Top

12 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-26 09:02:22 得分 0

think   you   very   much    
  有一个奇怪的现象,昨天我是这么做的  
  debug  
  a    
  mov   ax,   201  
  mov   bx,   200  
  mov   cx,   01  
  mov   dx,   80  
  int   13  
  mov   al,   0c  
  mov   [21c2],   al  
  mov   al,   0  
  mov   [21d2],   al  
  mov   [21e2],al  
  mov   [21e2],   al  
  mov   [21f2],al  
  int   13  
  w   100   0   0   1  
  把这一段程序写到软盘后重新启动   
  后屏幕显示硬盘找到  
  但是还是不能用硬盘启动  
  后我在 CMOS 把启动顺序改为CD-ROM 后竟然可以访问光区  
  然后输入盘符C:  
  找到了,在C:下用上面的程序可以调出分区表信息把O2 改为0C 后正常了,  
  但是到最后我也不知道是怎么好的,为什么用光区可以呢》?Top

13 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-26 09:04:48 得分 0

为什么在A:下就调不出呢?(分区表信息)  
  是程序有问题吗?  
  请叫高手?Top

14 楼QIC(秋至满山多秀色,春来无处不花香。)回复于 2001-10-26 09:23:03 得分 5

不是调不出来,是你的操作和这段程序错了。  
  1.你把分区表读到200H,但却去修改21C2H以后的内容,根本没改回来。  
  2.漏掉了写分区表的指令。  
  3.没有必要把这段程序写到软盘引导区。Top

15 楼missdeer(思鹿)回复于 2001-10-26 13:34:42 得分 0

其实硬盘是可以用的只不过是不能引导吧,就是说主引导扇区出了问题,其他的都正常?Top

16 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-27 11:50:52 得分 0

是的  
  你说的很对,就上修改了主引导扇区的内容,所以找不到硬盘    
  请问QIC用D   200   能够读出分区表吗?Top

17 楼QIC(秋至满山多秀色,春来无处不花香。)回复于 2001-10-28 00:01:36 得分 0

D   200是显示内存内容Top

18 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-28 09:13:34 得分 0

请问怎么才能显示引导扇区的内容呢?我很菜,请告诉我好吗>??  
  Top

19 楼QIC(秋至满山多秀色,春来无处不花香。)回复于 2001-10-28 11:49:11 得分 0

debug    
  a    
  mov     ax,201   ;读一个扇区  
  mov     bx,200   ;读到内存200开始的地址  
  mov     cx,1       ;读0磁道1扇区  
  mov     dx,80     ;读硬盘0磁头  
  int     13           ;调用BIOS磁盘中断INT13H  
  int     3             ;DEBUG的断点中断,程序运行到此处会停下。  
  g=100               ;从100处开始运行  
   
          上面这段程序是把硬盘主引导扇区读到200H开始处,每个扇区为512字节,转换为十六进  
  就是200H(H表示这个数是十六进制)字节,主引导扇区0000H-01BDH是引导代码,01BEH以后  
  的内容就是分区表,硬盘分区表详解请看“关于分区的问题40分”这个贴子,现在硬盘主引导  
  扇区读到200H开始处,所以分区表就在03BEH开始的地方(0200H+01BEH=03BEH)。执行完上面  
  这段程序后输入D   200并按回车键,看到的内容就是硬盘主引导扇区信息,输入D   3BE看到的就  
  是硬盘主引导扇区里的分区表信息。Top

20 楼seagle(莫等闲.白了少年头.空悲切!)回复于 2001-10-29 09:44:47 得分 0

think   you   very   much   !you   are   very   better!~-~Top

相关问题

  • 急救一菜鸟!
  • 兄弟们,急救菜鸟!!
  • 菜鸟提问说一(动态设置)急救急救
  • 菜鸟急救++++++++++++矩阵问题
  • 菜鸟急救:弹出式菜单的使用方法!
  • 菜鸟急救:::请问在WIN2000下如何安装JSP
  • 急救!简单问题,怎样退出循环? 菜鸟系列
  • ACCESS数据库的菜鸟问题!急救!!!!!!!!!!!!!!!!1
  • 菜鸟问题....xpmenu.dcu 丢失.....在线等 急救!!!
  • 菜鸟急救,datagrid如何获取相应行的ID?

关键词

  • 硬盘
  • 引导
  • 修改
  • 硬盘分区
  • debug
  • 屏幕
  • 执行
  • 内容
  • 电脑
  • 扇区

得分解答快速导航

  • 帖主:seagle
  • QIC
  • QIC

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo