【问题标题】:Short jump out of range短跳超出范围
【发布时间】:2012-08-21 14:47:36
【问题描述】:

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

例子1:

label:
my code
    LOOP label

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

例子2:

label:
my code
    more code added
    LOOP label

;它不起作用并出现错误“short jump out of range”

【问题讨论】:

    标签: nasm


    【解决方案1】:

    LOOP 指令不能跳转到超过 127 字节的距离。您需要更改代码以使用 DEC ECXJNZ 指令。

    例如:

        MOV ECX, 10
    label:
        ;some codes
        LOOP label
    

    变成:

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

    【讨论】:

      【解决方案2】:

      你试过near指令吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-09
        • 2023-03-07
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        • 2012-05-04
        • 2018-07-18
        • 1970-01-01
        相关资源
        最近更新 更多