汇编中如何调用外部程序到指定内存

神杀中龙 2005-12-05 05:36:31
在C中可以通过
System("路径\文件");
exec()等调用外部程序,但是不一定是指定内存地址

而在汇编中如何实现这样的功能呢?
...全文
153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leomaxking 2005-12-06
  • 打赏
  • 举报
回复
楼主不厚道
神杀中龙 2005-12-05
  • 打赏
  • 举报
回复
真是太感谢了,看来BIOS真的很强大,细节也很多吧,我会了解更多。
2005-12-05
  • 打赏
  • 举报
回复
dos中断在dos下才有效,因为其中断地址表是在dos初始化是填写的

bios中断是在系统初始化时设定的,开机过程大概是这样的,
开机后,cpu被设置成ffff:0,cpu从内存的这里开始执行两个步骤
A.执行 系统自检和初始化 程序。初始化程序将向内存的0000-03ff地址中填写各个中断地址
B.运行int 19,进行操作系统的引导。

可见bios的中断,是在开机启动,还没有进入操作系统时就建立好了
神杀中龙 2005-12-05
  • 打赏
  • 举报
回复
非常感谢,另外问一句 INT 21H中断是软件中断(DOS中断)
DOS中断需要DOS环境才可以执行吧
在windows下的DOS的虚拟86模式,所以执行DOS中断没问题
但是仅仅在 开机的一刹那 是没有任何系统的,所以只有BIOS中断可以执行,

加载 执行程序的BIOS中断是什么
Leomaxking 2005-12-05
  • 打赏
  • 举报
回复
直接用movs指令将执行代码复制到07c00地址512字节后的内存中就行了
神杀中龙 2005-12-05
  • 打赏
  • 举报
回复
那么dos下的int 21h的4bh可以保证加载程序到指定的内存地址吗?
比如我希望把程序加载到 内存07c00地址512字节后
大熊猫侯佩 2005-12-05
  • 打赏
  • 举报
回复
dos 下可以用 dos int 21h 中断的 4bh 服务 其功能是:

ah = 4bh 装配/执行程序 ds:dx = asciiz 串地址 失败 : ax = 错误码
es:bx = 参数区首地址
al = 0 装入执行
al = 3 装入不执行

win32 中也是调用系统提供的标准 api 接口来完成该功能。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧