社区
汇编语言
帖子详情
在裸机上进行汇编如何执行另一个程序....
atm2001
2002-03-16 09:54:48
在下编程时,发现int 21可以执行程序,但如果不在dos下进行汇编,在裸机上进行汇编
如何执行另一个程序....
在下先谢过了
...全文
103
11
打赏
收藏
在裸机上进行汇编如何执行另一个程序....
在下编程时,发现int 21可以执行程序,但如果不在dos下进行汇编,在裸机上进行汇编 如何执行另一个程序.... 在下先谢过了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
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分区格式上的文件,而是使用自己的分区格式
。。。我还没设计自己的分区格式。。。
Programmersheaven
2002-03-17
打赏
举报
回复
哈!没这么简单~~~~~~我刚完成一个操作系统内核的设计,不是光有文件系统的驱动就可以的,有的应用程序内部调用了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
通过虚拟机实现
裸机
汇编
环境
通过虚拟机实现
裸机
汇编
环境 1. 简述 操作系统带来便利的同时也引入了大量限制,在操作系统存在时,我们编写的
程序
不能直接被硬件加载。我们必须按照操作系统的约定,把
程序
编译成特定的可
执行
文件格式(比如Windows的PE文件格式,Linux的ELF文件格式)。
执行
程序
时,由操作系统读取可
执行
文件,选择合适的内存空间,并将代码和数据加载到内存中相应位置,这样
程序
才能被处理器所
执行
,在
程序
执行
过程中遇到...
(一)arm
裸机
开发---
汇编
led驱动
程序
学习新的系列,arm
裸机
开发。主芯片使用的是imx.6ull芯片,平台使用的是正点原子的imx.6ull alpha开发板。本节介绍
汇编
led驱动的开发过程。 为什么我们要用
汇编
来写led
程序
呢?因为cortex-a芯片上电之后sp指针(堆栈指针)没有初始化,没有c语言运行的环境。所以必须先用
汇编
语言初始化sp指针,ddr等,把c语言运行环境搭好。 目录一.硬件原理图二.初始化流程1.使能GPIO1_3的时钟2.设置GPIO的复用功能为IO3.设置GPIO的电器属性4.设置GPIO的输入输出三.编写驱动程
IMX6ULL
裸机
学习(4)— 编写
汇编
程序
点亮LED
IMX6ULL
裸机
学习(4)— 编写
程序
点亮LED 一、编写
程序
新建
一个
led.S文件,然后编写如下代码。 .global _start /* .global表示_start是
一个
全局符号 */ _start: /* 标签_start,
汇编
程序
的默认入口是_start */ /* 1、设置 GPIO1_IO03 复用为 GPIO1_IO03 */ LDR R0, = 0X020E0068 /* 将GPIO1_IO03复用模式寄存器的值写
ARM
裸机
开发:
汇编
LED灯实验(I.MX6UL芯片)
ARM
裸机
开发:
汇编
LED灯实验(I.MX6UL芯片)
I.MX6ULL
裸机
开发之
汇编
基础
I.MX6ULL是一款Cortex-A7芯片,这个芯片一上电SP指针还没初始化好,也就是说C语言运行的环境还没准备好,所以肯定不能直接运行C语言代码的。必须使用
汇编
语言设置好C语言运行环境,比如初始化DDR、设置SP指针等,只有把C语言运行环境设置好了,才可以运行C代码。C语言中的函数调用涉及到出栈入栈,也就是需要对堆栈
进行
操作,所谓的堆栈就是一段内存,这段内存由SP指针
进行
访问,所以需要初始化SP指针。
汇编语言
21,497
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章