首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将程序移动到堆栈[汇编80x86]

将程序移动到堆栈[汇编80x86]
EN

Stack Overflow用户
提问于 2013-07-08 01:36:27
回答 1查看 95关注 0票数 1

您好,提前谢谢!

我正在处理一个汇编项目,我需要将我的程序的代码移到堆栈中,并从那里继续程序的流程。

这意味着程序将从代码段开始,并在运行自身的同时移动到堆栈段。在那里,它将执行指定给它的任务(目前,让它在那里无限循环)。

我尝试了一些想法:

代码语言:javascript
复制
PUSH word [cs:jump]
MOV cx, sp
PUSH SS
PUSH SP
MOV BP, SP
ADD word [word BP], 2
JMP FAR [BP]
jump:
JMP cx

这会编译,但不起作用。

汇编语言是Intel针对80x86的16位汇编语言。汇编程序是nasm。

感谢所有的帮手。

EN

回答 1

Stack Overflow用户

发布于 2013-07-08 06:24:06

我假设您正在使用默认的bin输出格式编译代码,以生成一个.COM文件。如果是这样,您需要注意.COM文件在内存中的偏移量为100小时。您需要通过在代码开头添加ORG指令来使汇编程序意识到这一点。

代码语言:javascript
复制
ORG 100h

一旦你这样做了,你的代码应该会像预期的那样工作。如果没有ORG指令,汇编程序假定起始地址为0,因此跳转内存引用将关闭100h字节。

有关详细信息,请参阅NASM documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17514518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档