跳远超出范围

时间:2012-08-27 05:06:47

标签: nasm

我的循环有问题,其中包含的代码很长,并且它给出了“短跳超出范围”的错误,所以我想知道是否有办法通过不减少使循环工作它中的代码量?

例1:

label:
my code
    LOOP label

它工作正常,但当我在其中添加更多代码时

例2:

label:
my code
    more code added
    LOOP label

它不起作用,错误出现“短跳超出范围”

2 个答案:

答案 0 :(得分:6)

LOOP指令无法跳转到超过127个字节的距离。您需要更改代码,以便DEC ECX使用JNZ说明。

例如:

    MOV ECX, 10
label:
    ;some codes
    LOOP label

成为:

    MOV ECX, 10
label:
    ;some codes
    DEC ECX
    JNZ loop

答案 1 :(得分:0)

您是否尝试过near指令?