私は現在、アセンブリ (AT&T) で小さな (これまでのところ固定された質問がある) クイズを作成するのに忙しくしています。
1 2 または 3
のいずれかの特定の入力を要求する小さなメニューを設計しました。問題は、私の cmpl が機能しないことであり、その理由がわかりません。入力が何であれ、ただ終了します。
以下は私のコードの一部です:
.text
menu: .asciz "Please select an option: 1 - Start the quiz! 2 - Highscores 3 - Quit\n"
input: .asciz "%i"
.global main
main:
call menushow
menushow:
push $menu
call printf
addl $4,(%esp)
leal -4(%ebp), %eax
pushl %eax
pushl $input
call scanf
popl %eax
popl %eax # the number that has been entered is now in eax
cmpl $1,%eax #1 entered?
je qone #show question 1
cmpl $2,%eax #2 entered??
je showHighScores #show current highscores
call quit #something else? (3, 99 w/e) then we quit