小佛天下 发表于 2016-12-30 01:19:30

为什么单步执行可以得到结果,编译却不能。


这个编译之后,运行exe文件,却得不到结果

但如果单步运行却能得到结果,这是为什么?

求大神。

人造人 发表于 2016-12-30 01:51:30

因为debug帮你做了很多事

小佛天下 发表于 2016-12-30 09:07:35

什么意思?单步运行并不等于运行程序?

auyhin丶 发表于 2016-12-30 12:59:28

在编译器程序运行完之后 寄存器会恢复原来的值。而不是继续保留值在寄存器里咯。
就像c语言运行时i的值为5,你运行完了之后。写下一个程序的时候i的值不可能为5吧。除非你定义了全局变量 静态变量咯。

zealstar 发表于 2016-12-31 15:50:37

因为最后2句指令啊!
mov ax, 4c00h
你之前累加的值当然被替换了啊!{:10_266:}
页: [1]
查看完整版本: 为什么单步执行可以得到结果,编译却不能。