我正在尝试在汇编中编写一段代码,该代码接受输入,如果输入与给定值匹配,它将跳转到另一条指令。但是,如果输入与 $attack 字符串不同,这会陷入无限循环,有人知道为什么吗?
_takeaction:
movl $-400,%eax #\
addl %ebp,%eax #-give adress -400(%ebp) to scanf
push %eax #/
push $action #ask for action
call _scanf #scan data
push -400(%ebp)
push $attack
call _strcmp
cmp $0, %eax
je _attack
movl $1,%eax
push -400(%ebp)
push $run
call _strcmp
cmp $0, %eax
je _run
jmp _takeaction
....从未达到的代码.....
_attack :
movl -8(%ebp) , %eax # store player attack in eax
subl %eax , -208(%ebp)
jmp _actiontaken
_run :
push -216(%ebp)
call _printf
jmp _actiontaken
它可能与 fflush 函数有关吗?