我的汇编程序在调试模式下表现得很奇怪。我正在使用Visual Studio 2017来运行循环,当ecx
等于0时,我希望它会中断。但是,在调试模式下,循环在等于0后继续递减ecx
。我尝试了许多不同的值对ecx
而言,结果是一样的。当我在没有调试的情况下运行程序时,循环工作正常。非常感谢让我的程序在调试模式下工作的任何提示。
Include Irvine32.inc
.data
edward BYTE "edward cox",0
array BYTE 0,1
dat BYTE ?
.code
main proc
call ReadChar
sub eax,48 ; convert char to int
mov ecx, eax
sub ecx, 1 ; loop will run ecx-1 times
mov bl, 2 ; next value in fib sequence
L1: ; continues looping after ecx = 0
loop L1
mov edx, OFFSET edward
call WriteString
call crlf
invoke ExitProcess,0
main endp
end main
答案 0 :(得分:-2)
如果在调试期间遇到问题,但在执行期间没有问题,可能应该尝试使用gdb,它很有用且易于使用。