masm 将负数存于ECX与0比较出错

2020-09-20 10:40发布

问题:

.data
n		sdword	?
.code
		invoke	scanf,ADDR in1fmt,ADDR n
		mov		ecx,n 
		.if		ecx > 0

输入负数if判断会失效,但如果把.if ecx > 0换成.if n > 0又能成功判断,这是为什么?

截图为输入-5时的情况

回答1:

此时应该用 cmp 而不是 .if



标签: 汇编 masm