0
我写了下面这段代码,但是它得到的答案错了。它应该做x^2,但它似乎迭代了比需要更多的时间:装配迭代
1的结果是2 // 1 + 1 = 2
2的结果是8 // 2 + 2 + 2 = 8
我相信它将CX与ZeroFlag比较,而不是第一条语句中的1。是对的吗?
pos:
MOV CX,Number
again: Add Number,AX
Dec cx
cmp cx,1
jg again ; statement no. 1
JMP DONE
您要添加错误的结果(添加数字,AX),而不是相乘。 – m0skit0 2013-03-12 12:03:19
不应该使用乘法或除法.. – geekybedouin 2013-03-12 12:04:37
“AX”包含什么?此外,您的逻辑有点不合适:即使在进入循环之前“CX”<= 1,您总是进行一次加法。 – Michael 2013-03-12 12:12:13