• 全部
  • 问答

在裸机上进行汇编如何执行另一个程序....

atm2001 2002-03-16 09:54:48
在下编程时,发现int 21可以执行程序,但如果不在dos下进行汇编,在裸机上进行汇编
如何执行另一个程序....
在下先谢过了
...全文
37 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yayv 2002-03-18
这是我最后一次在asm版回贴。
你可以跟我师兄要他源代码,虽然还很不完善,但可以解答你的问题。
email: swordhui@263.net
homepage: http://edenos.myrice.com/
回复
Your_friend 2002-03-17
怎么都提一样的问题?建议先好好学学操作系统。
很难很费力气的。给你提供一点参考吧。
1 写自己的主引导程序装入0磁道1扇区。
2 写文件系统装入硬盘
3 在文件系统中做自己的系统程序
4 写系统初始化代码
很抽象没有实际的是不是?实际的是你必须掌握操作系统的结构,必须熟悉机器语言,必须熟知BIOS,必须熟悉各种外设的编程接口。
回复
cm_w 2002-03-17
程序必须为.COM格式,或在内存固定位置的可执行文件的印象.
还必须修改软盘或硬盘的引导代码直接将文件调入内存执行.
有现成的工具执行以上操作.
回复
unalone 2002-03-17
他问的是如何在裸机上执行另一个程序,也就是说,在已经解决了排除操作系统直接执行自己程序以后如何再去执行另一个程序的问题,楼主,是不是这个意思?

要解决这个问题,首先你得弄明白你要执行的程序的格式,不过,在你这种环境下,应该最多只能执行DOS下的程序,这样的话,你还得为它准备他所要用到的中断服务,比如 INT 21H等,如果是放在磁盘上,那你就要准备一个文件系统驱动,来读取磁盘上的文件,再根据文件格式,比如COM或EXE格式,将它们调入内存,建立PSP,然后就可以执行了。

不过,这个工作量也太大了吧??
回复
atm2001 2002-03-17
这些我都知道,我可是写了很长时间的汇编了。。。
bios的程序,我也看过IT的代码。。。
现在的问题是我不想使用FAT32分区格式上的文件,而是使用自己的分区格式
。。。我还没设计自己的分区格式。。。
回复
哈!没这么简单~~~~~~我刚完成一个操作系统内核的设计,不是光有文件系统的驱动就可以的,有的应用程序内部调用了DOS的中断,~~~~~~~~~~如果你不进行DOS
中断接口的仿真,根本就无法运行,结果是死机~~~~~~~~~~~
如果你想让它运行,要知道它内部进行了哪此中断的调用,以及在
程序运行前还要将按重定表进行重定向,否则,死了,没说了~~~~~~~~
写操作系统,BIOS的中断是必须懂的,因为写自己的操作系统时,最底层就是BIOS
最好先跟踪此程序进行了什么样的中断调用,然后先编写中断程序来满足它的调用。
回复
atm2001 2002-03-17
FAT32,FAT16,FAT12的分区格式,到没问题了,但是遇到NTFS就完了,还有我不想沿用这些格式,我想自己创建一种分区格式。。。
该如何办呢??
回复
unalone 2002-03-17
这个文件系统驱动并不一定很大很全呀?比如,只要能满足读取特定文件并传递到内存中的缓冲区就可以了。特定格式文件处理程序也一样,只要满足在最开始裸机启动后所需要的功能就可以了,比如,执行及重定位。

我在想你是不是要写个操作系统,这样的话最好将文件系统驱动还有文件格式处理程序的完整实现做成单独的……比如驱动程序,在引导程序中只实现两个部分:第一,读取引导分区文件系统上根目录还有从中查找特定文件并读取的实现;第二,一般来说,对一个大的操作系统,第一个读取的文件要么就是内核,比如LINUX,要么就是系统装载器,比如NT,同时,在系统继续引导过程中,读取的文件,比如驱动程序,动态链接库等,格式都比较固定,尤其是,在系统引导之初就会装载文件系统驱动的完整实现,对于文件格式的支持也都内置于系统实现内部,这样,引导扇区的文件格式处理程序只需要实现很少一部分文件格式以完成在没有装载系统文件处理程序之前系统执行的需要就可以了。
回复
atm2001 2002-03-17
文件系统驱动我也写了,但是太大了,不能放到主引导区,我的意思是主引导
程序如何执行另一程序,希望给出代码...
比如我已将文件的代码读入BX中,接下来该怎么办??
回复
atm2001 2002-03-17
我能处理pe,mz格式的文件,大必须先把这个处理程序装载!!!
回复
natureshuo 2002-03-16
g z
回复
相关推荐
发帖
汇编语言
创建于2007-08-27

2.0w+

社区成员

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
申请成为版主
帖子事件
创建了帖子
2002-03-16 09:54
社区公告
暂无公告