日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bochs安装FreeDOS与调试

發(fā)布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bochs安装FreeDOS与调试 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最經(jīng)看《80x86匯編語言程序設(shè)計》楊季文等著,里面的保護模式的例子無法調(diào)試,后來查到bochs可以調(diào)試,就折騰了一番,這里寫下吧……

>>>>>>>>>>>>>>>>>>>>>>>無恥的分割線>>>>>>>>>>>>>>>>>>>>>>>>

下載地址:

Bochs:http://bochs.sourceforge.net/

FreeDOS:http://www.freedos.org/????? 這個我下載的1.0,官網(wǎng)上是1.1,一是1.1比1.0大,而是我這1.1安裝時卡逼了……1.0裝成了……

WinImage:http://www.xdowns.com/soft/6/7/2006/Soft_29274.html???? 用于將需要的文件加入到虛擬硬盤

接下來是安裝:

Bochs沒啥說的,就是安裝時把那個DLX Linux Demo也選上,后面方便點,這個您隨意……安裝時選擇Install just for me就可以自定義了,安裝完后桌面上會出現(xiàn)一個打開簡易linux的快捷方式,如果您剛才選擇安裝了的話

接下來就是配置了

首先打開安裝目錄,打開bximage.exe創(chuàng)建虛擬硬盤,前兩部可以直接摁回車,到了第三步是設(shè)置大小的,默認10M……大小您自己看著辦吧,別小的裝不下系統(tǒng)就好 - -

第四步是給這文件起個名字……您繼續(xù)隨意……但后綴得是.img,然后別著急著關(guān),下面會出現(xiàn)一傳參數(shù),它已經(jīng)給你復(fù)制好了,一會你直接復(fù)制到配置文件就可以了,下面說下配置文件

如果您裝了哪個linux,就把她里面的配置復(fù)制過來改改就好,沒裝的話,您照著bochs安裝目錄下的bochsrc-sample.txt文件改,別看一大堆,大部分是注釋,帶#號的都是注釋……首先新建個文件夾,例如freedos,將虛擬硬盤、操作系統(tǒng)的iso文件和那個配置文件復(fù)制過來,然后改配置文件了

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

# how much memory the emulated machine will have

#這是內(nèi)存的大小

megs: 32????????????????????????????????????????????????????????????????????????????????????????

# filename of ROM images

#這是bios文件地址
romimage: file=../BIOS-bochs-latest
vgaromimage: file=../VGABIOS-lgpl-latest

# what disk images will be used?

#這是設(shè)置要使用的軟盤驅(qū)動器。
floppya: 1_44=floppya.img, status=inserted
floppyb: 1_44=floppyb.img, status=inserted

# hard disk

#這是硬盤
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17

# choose the boot disk.

#這是選擇啟動盤,c表示從“硬盤”啟動,這個可是指我們的虛擬硬盤
boot: c

# default config interface is textconfig.
#config_interface: textconfig
#config_interface: wx

#display_library: x
# other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga

# where do we send log messages?

#這個可以不要,是日志文件,不要設(shè)置為log:nul
log: bochsout.txt

# disable the mouse, since DLX is text only

#是否要鼠標。
mouse: enabled=0

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

上面這個是那個linux的配置文件,注釋我也從別地抄過來了……接下來把剛才虛擬硬盤那行參數(shù)復(fù)制到硬盤那里,注釋掉原來的

>>>>>>>>>>>>>>>>>>>>>>>>

# hard disk

#這是硬盤
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17

ata0-master: type=disk, path="100M.img", mode=flat, cylinders=203, heads=16, spt=63

ata0-slave: type=cdrom, path="操作系統(tǒng)文件名.iso", status=inserted

>>>>>>>>>>>>>>>>>>>>>

這里改成cdrom,安裝完成后再改成c

>>>>>>>>>>>>>>>>>>>>>>>>>

# choose the boot disk.
boot: cdrom

>>>>>>>>>>>>>>>>>>>>

接下來打開freedos文件下,也就是您剛創(chuàng)建的文件夾下的bochsrc.bxrc開始安裝freedos

執(zhí)行bochsrc.bxrc,格式化硬盤:

??? a.Prepare the harddisk for FreeDOS 1.0 Final by running XFdisk,回車后選擇OK;
??? b.繼續(xù)回車,選擇New Partition / Primary Partition,一路YES下去;
??? c.繼續(xù)回車,選擇Install Bootmanager;
??? d.按F3,一路YES下去;

5、安裝FreeDOS:

??? a.Continue with FreeDOS installation
??? b.Start installation of FreeDOS 1.0 Final
??? c.一路YES下去即安裝完成;

安裝完成后打開配置文件把boot: cdrom這里再改為boot: c即可

運行freedos,進入dos后md新建個文件夾

往里面添加要調(diào)試的文件,用winimage打開你創(chuàng)建的那個虛擬硬盤,把文件加入你創(chuàng)建的那個文件夾即可

>>>>>>>>>>>>>>>>>>>>>>萬惡的分割線>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

接下來是調(diào)試打開bochsdbg.exe,單擊Load,載入freedos的配置文件,然后start,就斷在那里了,下面給大家一些調(diào)試命令和方法

bochsdbg的基本命令:

指令舉例說明
b addrb 0x7c00在指定內(nèi)存物理地址設(shè)置斷點
info binfo b查看已經(jīng)設(shè)置了的斷定信息
d numd 1刪除斷點,num為使用info b顯示的斷點序號
cc繼續(xù)執(zhí)行,直到遇到下一個斷點
ss單步執(zhí)行
nn單步執(zhí)行(遇到函數(shù)跳過)
u start endu 0x7c00 0x7ca0反匯編一段內(nèi)存
sregsreg查看寄存器信息(查看GDT與LDT是否加載正確,段寄存器的值等)
rr查看通用寄存器信息

下面是網(wǎng)上找到的一些方法:

第一種:陷阱

在內(nèi)存某位置挖一個坑,等著我們的程序跳進去。在程序開頭處增加一段代碼,訪問某內(nèi)存地址,在Bochsdbg里下該地址的內(nèi)存訪問斷點。程序一開始運行……等它跳進來的時候抓住它。

詳細過程請猛擊這里:http://www.aogosoft.com/downpage.asp?mode=viewtext&id=140

第二種:死循環(huán)

在程序開頭加一句jmp $讓我們的程序死循環(huán),在Bochs里執(zhí)行這個程序,然后在Bochsdbg里按下Ctrl+C,然后修改EIP寄存器的值指向我們的程序入口。

前兩種都是在網(wǎng)上找到的,都可行,但是比較麻煩,下面這種是天殺老大教給我的,也是Bochs提供的功能。

在程序開始處添加一句xchg bx,bx,然后在Bochsrc.bxrc文件里添加一句magic_break: enabled=1,然后選擇調(diào)試啟動Bochs虛擬機,當執(zhí)行到xchg bx,bx指令時就會自動斷到Bochsdbg里。

這種方法在Bochsrc_sample.txt文件里有介紹,但我想很多人都跟我一樣沒仔細看:-)


參考:

http://blog.csdn.net/fazai001/article/details/6694559

http://www.360doc.com/content/12/0108/15/6938655_178090482.shtml

總結(jié)

以上是生活随笔為你收集整理的Bochs安装FreeDOS与调试的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。