0

我正在尝试在汇编中编写一段代码,该代码接受输入,如果输入与给定值匹配,它将跳转到另一条指令。但是,如果输入与 $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 函数有关吗?

4

0 回答 0