В настоящее время я занят созданием небольшой (с фиксированными вопросами) викторины в сборке (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
Что вы видите, когда отлаживаете это? – zmbq
Когда я отлаживаю, je get не выполняется, поэтому программа переходит на следующий cmpl. Здесь он снова не попадает, и, таким образом, он достигает вызова quit, который выполняется (безоговорочно). – Gooey
Когда вы вводите «1» с клавиатуры, значение равно 31h или 49 десятичным, а не 1. –