我的循环有问题,其中包含的代码很长,并且它给出了“短跳超出范围”的错误,所以我想知道是否有办法通过不减少使循环工作它中的代码量?
例1:
label:
my code
LOOP label
它工作正常,但当我在其中添加更多代码时
例2:
label:
my code
more code added
LOOP label
它不起作用,错误出现“短跳超出范围”
答案 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
指令?