⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000009.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;reden&nbsp;(鱼&nbsp;~&nbsp;君子律己以利人),&nbsp;信区:&nbsp;Linux&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;Boot&nbsp;Manager&nbsp;of&nbsp;FreeBSD&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Tue&nbsp;Oct&nbsp;&nbsp;6&nbsp;20:23:03&nbsp;1998)&nbsp;WWW-POST&nbsp;<BR>&nbsp;<BR>发信人:&nbsp;arbiter&nbsp;(仲裁者),&nbsp;信区:&nbsp;FreeBSD
&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;Boot&nbsp;Manager
&nbsp;<BR>发信站:&nbsp;华南网木棉站&nbsp;(Tue&nbsp;Oct&nbsp;&nbsp;6&nbsp;13:17:35&nbsp;1998),&nbsp;转信
&nbsp;<BR>
&nbsp;<BR>发信人:&nbsp;Satan&nbsp;(魔头),&nbsp;信区:&nbsp;BestOS
&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;Boot&nbsp;Manager
&nbsp;<BR>发信站:&nbsp;安徽大学逍遥津站&nbsp;(Mon&nbsp;Aug&nbsp;&nbsp;3&nbsp;16:13:55&nbsp;1998),&nbsp;转信
&nbsp;<BR>
&nbsp;<BR>FreeBSD自带的Boot&nbsp;Manager虽然不如Linux的lilo功能强大,但它只需按一个键就可以
&nbsp;<BR>引导,界面直观,所以还是比较适合一些懒人的:-),但是有一个问题就是你如果重新安装
&nbsp;<BR>win95什么的把MBR覆盖掉后,会发现不知道怎么再把Booteasy装上了,sysinstall也不行&nbsp;<BR>!
&nbsp;<BR>
&nbsp;<BR>为此把Booteasy反汇编出来分析了一把,不料却被这段小代码吸引住了,真是....真是
&nbsp;<BR>太精彩了,使我忍不住要把它贴出来奉献gei大家,让大家一起来享受编程世界的美妙乐趣&nbsp;<BR>.
&nbsp;<BR>小小的四百多个字节,可以gei你一个简单明了的启动选择界面,它能记住你上次的选择,
&nbsp;<BR>能够认得十四种操作系统,而且能够启动第二硬盘!唯一遗憾的是,它的尺寸放不下起动
&nbsp;<BR>扩展分区的代码.但这也不能阻止它成为一个优秀的Boot&nbsp;Manager.
&nbsp;<BR>
&nbsp;<BR>Booteasy的源码附在后面,安装它你需要在dos下用msas6.11编译一下,也许masm5.x也
&nbsp;<BR>可以,但不要用tasm,因为它自做聪明地在代码里插入了一些nop,而我们的代码里面使
&nbsp;<BR>用了绝对地址来寻址一些变量.然后你需要把生成的exe文件拷到linux或bsd下,用dd
&nbsp;<BR>把其中的代码过虑出来.代码在exe文件里的位置可以通过exe文件头查到,如果你不熟
&nbsp;<BR>悉,可以用十六进制编辑器查找33C0,这是程序的第一条语句.
&nbsp;<BR>
&nbsp;<BR>假如你生成了booteasy.exe,代码在偏移200h处
&nbsp;<BR>dd&nbsp;if=booteasy.exe&nbsp;of=mbr&nbsp;bs=1&nbsp;count=446&nbsp;skip=512
&nbsp;<BR>生成的mbr就是booteasy的代码,然后把它放到硬盘的第一个扇区
&nbsp;<BR>dd&nbsp;if=mbr&nbsp;of=/dev/wd0&nbsp;bs=1&nbsp;count=446
&nbsp;<BR>在做这步之前最好把你的MBR做个备份
&nbsp;<BR>dd&nbsp;if=/dev/wd0&nbsp;of=mbr.old&nbsp;bs=1&nbsp;count=512
&nbsp;<BR>
&nbsp;<BR>重新启动机器,看看是不是好用了?如果你的机器起不来了,可不要来砍我哦~~~
&nbsp;<BR>我自己试的是没问题的,有空再做个简单的安装程序吧.
&nbsp;<BR>本来还想把这个程序用AT&amp;T的汇编语法改写,以便能用as编译,可是Unix在X86机上起
&nbsp;<BR>家就是386,所以编译出的代码多了好些前缀(66h,67h),找了半天也没有找到生成8086
&nbsp;<BR>代码的选项,只得做罢.如果有人能把它完善一下让它可以完全在dos下安装,也是造
&nbsp;<BR>福众生的好事一件:-)
&nbsp;<BR>
&nbsp;<BR>><I>--------------------------------cut&nbsp;here------------------------------&lt;
&nbsp;</I><BR>CODE&nbsp;&nbsp;&nbsp;&nbsp;SEGMENT&nbsp;PUBLIC&nbsp;&nbsp;'CODE'
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASSUME&nbsp;&nbsp;CS:CODE,DS:CODE,ES:CODE,SS:CODE
&nbsp;<BR>
&nbsp;<BR>START:
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,AX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;开机boot,booteasy被装入0:7c00h处
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ES,AX
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DS,AX
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SS,AX
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SP,07C00H
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CLD
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SI,SP
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DI,0600H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;将自身移到0:600h处
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CX,0100H
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0F2H,0A5H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;repnz&nbsp;movsw
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;不知道为什么masm6.11不许在movsw前
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;加repnz前缀,不过用rep应该也可以...
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0EAH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;jmp&nbsp;0000:0600h
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;060H,06H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;万恶的鬼子不许我们用直接远跳转,但是人民
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;00H,00H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;的创造力是无穷的...
&nbsp;<BR>_011B:
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DX,BP
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0A2H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;mov&nbsp;[0748],al
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DB&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;48H,07H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;#$<A HREF="mailto:@$^&$&#$@!这种直接寻址也不可以...
">@$^&$&#$@!这种直接寻址也不可以...
</A>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AL,035H
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_0141&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;从第二硬盘启动(用&quot;另一个硬盘&quot;比较恰当)
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AH,010H
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MUL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;ax=3?0h,?=1,2,3,4
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ADD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AX,04AEH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;ax=所选分区表项起始地址
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XCHG&nbsp;&nbsp;&nbsp;&nbsp;SI,AX
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TEST&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;PTR&nbsp;[SI+04],0FFH&nbsp;&nbsp;&nbsp;;&nbsp;无效分区?不知道有什么含义
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JZ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_0171
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BYTE&nbsp;PTR&nbsp;[SI],080H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;激活该分区
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_0213&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;写回
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DH,[SI+01]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;分区起始头
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CX,[SI+02]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;分区起始扇区和起始柱面
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_0149
&nbsp;<BR>_0141:
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CALL&nbsp;&nbsp;&nbsp;&nbsp;_0213
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CX,0001&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;扇区号从1而不是从0开始
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XOR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DL,CL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;dl=80,执行后为81;dl=81,执行后为80
&nbsp;<BR>_0149:
&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BX,07C00H&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;装入地址
&nbsp;<BR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -