【发布时间】:2020-03-28 19:04:48
【问题描述】:
您好,我遇到了一个问题,好像 nasm 妨碍了我,但我想问一下 nasm 中是否有我不知道的解决方案。我正在使用 x86 intel 编程制作 COM 文件。
在我的程序中,事物的位置不是静态的,所以我使用 bp 来计算事物的正确偏移量。例如,如果我想访问变量缓冲区,我使用lea dx, [bp + buffer]
所以在我的代码中,我想使用条件跳转到代码中的特定标签,但是由于程序的位置发生了变化,我想做这样的事情:jc [bp + EXIT],加载到寄存器中也不起作用。
在此示例中,EXIT 将是程序结束的部分。但是我想跳转到代码中的许多不同的地方,而不仅仅是退出。
所以我要问的是,nasm 中是否有任何东西可以让我有条件地跳转到相对于 bp 动态的内存地址?即使稍后代码位置在内存中发生变化,它们仍然有效吗?如果不是,那么获得这种行为的最佳解决方案是什么?
【问题讨论】:
标签: assembly com conditional-statements nasm x86-16