博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Orange's笔记(1)
阅读量:5251 次
发布时间:2019-06-14

本文共 1737 字,大约阅读时间需要 5 分钟。

第一章

写一个小的引导程序 代码:

1     org    07c00h 2     mov    ax,cs 3     mov    ds,ax 4     mov     es,ax 5     call     DispStr 6     jmp    $ 7 DispStr: 8     mov    ax,BootMessage 9     mov    bp,ax10     mov    cx,1611     mov    ax,01301h12     mov    bx,000ch13     mov    dl,014     int    10h15     ret16 BootMessage:    db    "Hello, OS World!"17 times    510-($-$$)    db    018 dw    0xaa55

用NASM编译

nasm boot.asm -o boot.bin

安装 bochs

安装环境 :

sudo apt-get install build-essential xorg-dev libgtk2.0-dev

 

在官网下载最新版本 然后安装

 

./configure --enable-debugger --enable-disasmmakesudo make install

make的时候提示

/usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined reference to symbol 'pthread_create@@GLIBC_2.1'//lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command linecollect2: error: ld returned 1 exit statusmake: *** [bochs] 错误 1

解决方法

在makefile的libs中添加如下内容 :

-lz -lrt -lm -lpthread

利用bximage生成虚拟软盘,将引导扇区写入虚拟软盘:

dd if=boot.bin of=a.img bs=512 conv=notrunc

配置 bochs  然后启动

################################################################ Configuration file for Bochs################################################################ how much memory the emulated machine will have megs: 32# filename of ROM images romimage: file=/usr/local/share/bochs/BIOS-bochs-latest vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest# what disk images will be used floppya: 1_44=a.img, status=inserted# choose the boot disk. boot: floppy# where do we send log messages?# log: bochsout.txt# disable the mouse mouse: enabled=0# enable key mapping, using US layout as default. keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/sdl-pc-us.map

 

 在新版bochs中无dump_cpu命令。

转载于:https://www.cnblogs.com/Cnforce/p/3818287.html

你可能感兴趣的文章
陈伯雄第一次作业小结
查看>>
Python day1_Base1笔记
查看>>
字典及相关操作
查看>>
3.13上午
查看>>
mysql 开启慢查询日志
查看>>
【缓存】redis缓存设计
查看>>
Edit Distance 解答
查看>>
java基础 强引用、弱引用、软引用、虚引用
查看>>
Sikulix在Mac电脑的环境配置
查看>>
swift coredata relationship
查看>>
js判断浏览器类型
查看>>
Vue.js 样式绑定(1)
查看>>
记VS2013并行编译导致出错的解决过程
查看>>
es python demo
查看>>
【BZOJ 1724】[Usaco2006 Nov]Fence Repair 切割木板 堆+贪心
查看>>
Entity Framework Logging and Intercepting Database Operations (EF6 Onwards)
查看>>
尚未备份数据库 "***" 的日志尾部。
查看>>
super 关键字
查看>>
Android 解压zip文件你知道多少?
查看>>
性能测试三十一:监控之工具监控
查看>>