我使用命令call m返回 m 标签,因为以某种方式编写相同的循环是不合理的。问题是:如何摆脱这样的循环(在这种情况下,call必须使用命令),如果您在循环之后与命令cmp(在命令之前call m)进行检查比较,则可能无法第二次参考循环......
code segment
assume cs:code, ds:code
start:
add bh,0h ; перевірка числа на парність
mov si,1h
mov cx,4h
mov al,10h
m:
mov ds:[si],al
inc si
inc al
loop m
mov si,6h
mov cx,4h
mov al,10h
call m
code ends
end start
call 是一个必须以 ret 命令结束的函数调用。只需返回地址 m - 有一个 jmp 操作数。现在你的代码一团糟,你在自己内部调用一个调用而不完成它,结果你会得到堆栈溢出和蓝屏(嗯,以前是这样,现在系统变得更智能了) . 最后,您的代码应该是这样的