为什么此循环将结果显示为20而不是120?
ORG 100H
facto dw ?
START:
MOV CX, 5
MOV AX, 5
DEC CX
repeat :
MUL CX
MOV facto , AX
LOOP repeat
ENDS
END START :
答案 0 :(得分:1)
尽管使用了一些不需要的命令,但是代码仍然可以正常工作。 这是在FASM中进行测试的完整代码。您会看到我将mov cx,5和dec cx合并到mov cx,4,并将分配从ax移到了事实,远离了循环,以避免不必要的代码执行。
package main
import (
"fmt"
"strconv"
)
func main() {
v := "55"
if s, err := strconv.Atoi(v); err == nil {
fmt.Println(string(v)) // 55
fmt.Println(s) // 55
fmt.Println(string(s)) // 7
}
}