5

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

示例1:

label:
my code
    LOOP label

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

示例2:

label:
my code
    more code added
    LOOP label

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

4

2 回答 2

8

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

例如:

    MOV ECX, 10
label:
    ;some codes
    LOOP label

变得:

    MOV ECX, 10
label:
    ;some codes
    DEC ECX
    JNZ label
于 2012-08-27T18:56:50.993 回答
0

你试过near指导吗?

于 2017-01-04T13:30:21.873 回答