【发布时间】:2016-10-11 03:07:58
【问题描述】:
给定一个整数,我必须编写一个返回其阶乘值的函数。
这是我的阶乘函数代码:
bl getnum
move r3, r0
mov r1, #1 -- counter
mov r4, r0
loop:
sub r0, r0, #1
mul r3, r0, r3
add r1, r1, #1
subs r1, r4 -- check if counter = the initial r0
beg loop
mov r0, r3
bl printnum
但是,此代码会产生不正确的结果。例如,当我输入 5 时,它会给出 20 而不是 120。有人可以帮我找出问题所在吗?我的逻辑推理似乎有效,但我不知道我是否犯了导致程序以不同方式运行的语法错误
【问题讨论】:
-
发布代码时,您应该复制粘贴而不是输入代码,以避免拼写错误。我怀疑您的实际代码中是否包含
beg。