您现在的位置: 电脑知识网 >> 电脑故障 >> 硬盘检测 >> 主引导记录工作原理

主引导记录工作原理

 2007-9-29 来源:PC235.COM 您有问题?请联系我们
关 键 词:主引导记录工作原理

主引导记录工作原理


  

;rem 下面是DOS汇编部分,不要乱动哦


  

;@ECHO OFF


  

;GOTO END_BATCH


  

;下面是一些编译设置,因为要编成COM文件,所以是TINY模式


  

.MODEL tiny


  

.CODE


  

STARTUPCODE


  

;BIOS引导系统把我从硬盘的主引导分区中搬到了内存中,我现在的位置是0000:7C00


  

;我好开心哦:)我终于可以工作了,让我先设置新的堆栈段,数据段,附加段吧!


  

M_0100:


  

CLI


  

XOR AX,AX


  

;SS:SP=0000:7C00,因为0000:7C00是我的家,所以我的堆栈当然要在我前面啦:)


  

MOV SS,AX


  

MOV SP,7C00H


  

;等一会我们就要搬家了,所以先把般家的位置准备好,DS:SI=0000:7C00,ES=0000


  

MOV SI,SP


  

PUSH AX


  

POP ES


  

PUSH AX


  

POP DS


  

STI


  

;把新家搬到0000:0600的位置吧,因为0000:7C00这个地方要让给DOS引导程序玩啊:(


  

;注意:系统引导型病毒也会搬家的哦,不过是搬到9FC0:0这个内存最高端的1K


  

;存中的,这样既腾出了空间给DOS,又保护了自已不会发现,当然新家就很安全了哦


  

CLD


  

MOV DI,0600H


  

MOV CX,0100H


  

REPNZ


  

MOVSW


  

;新家搬好了,赶快跳过去吧,0000:061D这个地方,不要跳错了哦:)


  

DB 0EAH,1DH,6,0,0 ;JMP 0000:061D


  

;终于跳到新家了,我们又可以继续我们的工作了,不过我现在的位置是在0000:061D


  

M_011D:


  

;设好分区表的起始位置,我们要一个一个地检查了啊


  

MOV SI,0600H+PT-M_0100


  

;我们要读4个分区的信息,所以BL=4,BL是我们的计数器哦,不要数错了,要不打你PP:)


  

MOV BL,04


  

M_0122:


  

CMP BYTE PTR [SI],80H


  

;如果我们读到了活动分区标志80H的话,快去M_0135这个地方继续工作吧


  

JZ M_0135


  

;80H是活动分区标志,00是非活动分区标志,其它数值是非法的,如果是其它数值,


  

;你可能感染病毒了,不会哪么惨吧,不是的话,就是你的硬盘坏了,嘿嘿嘿


  

CMP BYTE PTR [SI],00


  

;如果没有活动分区,而且分区是非法的话,哪就去死吧:(


  

JNZ M_0148


  

;继续看看下面有没有合法分区,最好有活动分区就谢天谢地喽:(


  

ADD SI,+10H


  

DEC BL


  

;还没看完吧,回去再看看吧,机会总是有的嘛,不要太灰心了哟,上帝保佑:)


  

JNZ M_0122


  

;终于死掉了,虽然读到的分区都是合法的,可是很不爽啊,居然没有一个是活动的,


  

;能是没吃饭吧,罢工了,呵呵,没法了,去玩ROM BASIC,这可是BILL GATES刚出道时


  

;玩的东东哟,听清楚了吗,BASIC,编程序的,如果你不会编程序,呵呵,哭吧,哈哈哈


  

INT 18H


  

M_0135:


  

;运气真不错,居然读到活动分区了,先把基本参数保存好,我要请DOS引导程序进来玩了


  

MOV DX,[SI]


  

MOV CX,[SI+02]


  

;先把活动分区的位置存在BP,我们有用的哦


  

MOV BP,SI


  

M_013C:


  

;每个分区表有10H,再看看其它分区再说,要是让我瞧见非法分区,呵呵,不让你活


  

ADD SI,+10H


  

DEC BL


  

;如果4个分区信息都读完了,哪我们就不要玩了,DOS引导程序搬到内存中来,


  

;让它来玩玩啊,要不电脑可要罢工的啊,快到M_015D去请DOS出来吧,呵呵


  

JZ M_015D


  

CMP BYTE PTR [SI],00


  

;如果这个分区是合法的,呵呵,检查下一个分区吧,宁可错杀一千,不可放过一个,呵呵


  

JZ M_013C


  

M_0148:


  

;哈哈,终于让我抓着个非法的分区了,先显示个无效分区的字符串信息让你瞧瞧吧,


  

;然后就宰了你,呵呵,600+8B=68B处是无效分区的字符串位置,没搞错吧


  

MOV SI,0600H+IPT-M_0100


  

M_014B:


  

;开始显示吧,这个子程别人也要用的,不过我先来,所以先用一下哦,别跟我抢,呵呵


  

;这是一专门用来显示字符串的子程序,不过它可是有来无回哦,找到RET指令了吗,


  

;有吧,因为它要是被执行了,你就要被杀头了哟,所以没必要回来了啊,呵呵


  

LODSB


  

CMP AL,00


  

;如果字符串显示结束了,哪你也就死到临头了,想挣扎一下吗,M_015B看看吧,是不


  

;是嗅到死亡的气息了哟,呵呵


  

JZ M_015B


  

;在当前光标位置以TTY电传方式显示一个字符


  

PUSH SI


  

MOV BX,0007


  

MOV AH,0EH


  

INT 10H


  

POP SI


  

;继续显示下一个字符


  

JMP M_014B


  

M_015B:


  

;在地狱的滋味可真不好受,可是...........


  

;没人把你拎出来了,因为这是死循环,所以就在这玩吧,不过这儿很安静,我喜欢,呵呵


  

JMP M_015B


  

M_015D:


  

;我的任务终于完成了,下面要让DOS来接班了,先把DOS引导程序从硬盘搬到内存中来吧


主引导记录工作原理文章结束

更多内容请看 电脑故障 > > 硬盘检测专题
  • 上一个文章:

  • 下一个文章:
  • 【最新推荐:主引导记录工作原理】
    Pc235-免费的教育教学网络资源
    【频道更新】
    【相关文章】
    没有相关文章
    电脑知识网 版权所有 严禁转载本站文章 违者追究法律责任
    copyright © 2007 www.Pc235.com online services. all rights reserved. 渝ICP备07500547号