我的循环有问题,它包含的代码很长,它给我错误"短跳超出范围",所以我想知道是否有办法通过不减少量的循环工作代码在里面?
例1:
label:
my code
LOOP label
Run Code Online (Sandbox Code Playgroud)
; 它工作正常,但当我在其中添加更多代码
例2:
label:
my code
more code added
LOOP label
Run Code Online (Sandbox Code Playgroud)
; 它不起作用,错误出现"短跳超出范围"
该LOOP指令不能跳转到超过127个字节的距离.你需要改变你的代码中使用DEC ECX与JNZ说明.
例如:
MOV ECX, 10
label:
;some codes
LOOP label
Run Code Online (Sandbox Code Playgroud)
成为:
MOV ECX, 10
label:
;some codes
DEC ECX
JNZ loop
Run Code Online (Sandbox Code Playgroud)