使用Bochs调试汇编程序
使用Bochs调试汇编程序
使用bximage生成镜像
选项:
hd
:创建硬盘,-fd
表示创建软盘size
:镜像大小,单位为MBmode
:硬盘模式,可选模式有flat
、growing
、sparse
三种-q
:静默模式
将生成语句写入对应的bochs配置文件,例如:
写入MBR,在Bochs中运行汇编程序
一般计算机启动时会启动BIOS,BIOS会去磁盘的第一扇区上找对应的MBR程序。因此想在一个裸机上直接运行汇编程序,那么就需要将汇编程序写入到磁盘分区起始块的一个扇区(512KB)上即可。
可以通过
fdisk -l
命令来查看扇区大小。
使用nasm编译
使用dd命令写入镜像
这里假设你的镜像为
test.img
,你的程序为mbr.bin
解释以下:
dd是一个磁盘操作命令,用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
选项:
if
:输入文件
of
:输出(被写入)文件
bs
:指定块的大小,单位KB
count
:写入次数
skip
:表示输入文件跳过n个块
seek
:表示输出文件跳过n个块,注意单位为块
append
:追加模式
conv
:转换文件,可选参数如下表
参数 含义 lcase 把小写字符转换为大写字符 ucase 把小写字符转换为大写字符 swab 交换输入的每对字节 noerror 出错时不停止 notrunc 不截短输出文件
实模式下1MB
的内存布局
在实模式下,CPU能访问的内存空间最多只有
1MB
,即。
BIOS会在运行过程中去磁盘找到MBR程序,并将控制权交给MBR程序。MBR被载入内存后的位置是0x7c00 ~ 0x7dff
。那么只需要在启动bochs后,在0x7c00
该位置打一个断点即可。
操作步骤:
__EOF__

本文作者:Lht1
本文链接:https://www.cnblogs.com/yghr/p/15813969.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/yghr/p/15813969.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)