2 t812206236 t812206236 于 2016.09.26 20:45 提问

使用freedos怎么debug进入保护模式的程序

只成功的debug了realmode下的程序,但是一进入保护模式就不行了,使用bochs中断看到的汇编和我编写的代码不同,应该怎么调试?

1个回答

devmiao
devmiao   Ds   Rxr 2016.09.27 01:38
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一个操作系统的实现--保护模式
一个操作系统的实现--保护模式
一个操作系统的实现(11)-让操作系统进入保护模式
这节首先介绍了突破引导扇区只有512字节的原理,然后介绍了FAT12文件系统,最后通过实验加载loader并将控制权交给loader来实现突破512字节的束缚。 突破512字节的限制 前面所用的引导扇区只有512字节。然而实际上操作系统在启动过程需要做的事情是很多的。所以需要通过某种方法突破512字节的限制。 那么如何突破512字节的限制呢?一种方法是再建立一个文件,通过引导
一个操作系统的实现--freedos中edit问题
一个操作系统的实现--freedos中edit问题
进入保护模式(三)
(十)保护模式下的栈 76 ;以下用简单的示例来帮助阐述32位保护模式下的堆栈操作 77 mov cx,00000000000_11_000B ;加载堆栈段选择子 78 mov ss,cx 79 mov esp,0x7c00 第77~79行用来初始保护模式下的栈。栈段描述符是GDT中第3个(从0开始数)描
进入保护模式(二)
首先来段题外话:之前我发现我贴出的代码都没有行号,给讲解带来不便。所以从现在起,我要给代码加上行号。我写博客用的这个插入代码的插件,确实不支持自动插入行号。我真的没有找到什么好方法,无奈之下,只能按照网友的说法,在VIM中给每行代码加上行号,然后再贴出来。 在VIM中每一行都添加上行号的方法是: :%s/^/\=line(".")/ 对,只要执行这个命令就可以了。至于为什么这样写,可以参考我
进入保护模式总结
1.最主要的就是那个jmp dword,一切都是为了Jmp做准备 2.int 13h读取扇区,既可以读硬盘,又可以读软盘,应该是两个的驱动器号不同(这个还没搞清楚,现在只会读软盘)。用硬盘映像的时候,总是说找不到引导设备,不知道是哪儿的参数错了。 一些细节: >cl是读取的扇区号,1就是第1个扇区,并不是从0算起。 >kernel.s生成的就只有16B,所以只读取16字节。(其他的好像是0
操作系统引导--从实模式到保护模式
从开始到保护--系统开机引导 ------没有一个文档能写的通俗易懂,我希望写出来。 开机引导和实模式: 两个星期加上假期吐血整理,所述为计算机的开机引导,其中包括一系列计算机内存设置等等,由于没有老师教,本人理解可能还是有点错误,希望错误的地方看的博友们能帮忙指出来,共同学习,谢谢! 目前正在看linux0.11内核源代码,参考资料极其环境配置后面会说出来。 我们的
一个操作系统的实现(2)-认识保护模式
今天开始学习intel处理器的保护模式。书的第二章 这节讲述的是如何从实模式进入保护模式。用的例子是在保护模式下向屏幕上输出字符P 如何进入保护模式呢?主要步骤如下: 0. 进入保护模式的步骤 准备GDT用lgdt加载gdtr打开A20置r0的PE位位1跳转,进入保护模式 下面是书的例子: 1. 进入保护模式实例 ; ===================
进入保护模式-汇编学习之路
在实模式下由于对内存的保护不是特别的完善,一个段可以任意访问访问不是该段范围内的内存。例如以下一个小例子 mov cx,0x8000 push ds mov ds,cx mov [0x05],dx pop ds 这个例子就说明了先保存当前的数据段地址之后在修改其他段的内存,之后再返回当前的数据段。也就说明一个问题在实模式下可以任意对内存进行访问这样做是很危险的例如写一个程序从而达到修改
玩儿转C语言:系统内存模型之实模式和保护模式
要想对C语言有一个深入的理解,就不得不说它赖以生存的环境,这里简要介绍一下系统内存模型。内存模型,就不得不说业界知名的Wintel联盟,到底是谁选择了谁?又是谁成就了谁?反正已成事实鬼才知道! 1、Intel 80x86系列处理器 关于Intel X86家族的发展历史这里不想赘述,无非就是:字长越来越大(4位 -> 8位 -> 32位 -> 64位);频率越来越快(30MHz -> 600