Бесконечный цикл после зацикливания программы, вызванный символом char - PullRequest
0 голосов
/ 29 апреля 2019

Я пишу калькулятор в nasm, и я сталкиваюсь с этой проблемой, которая возникает только после того, как пользователь вычисляет два последовательных ответа и вводит нецелочисленный ответ для приглашения, вызываемого в методе «Prompted».

подсказано:

push prompt ;pushes prompt to stack
call printf ;call printf

add esp, 4 ;remove prompt off stack
push promptval ;push int that scanf will push to
push formatin ;push format for scanf
call scanf ;call scanf function

add esp, 8 ;remove promptval and formatin from stack

mov eax, dword [promptval] ;set eax as promptval

cmp eax, 1 ;figure out if promptval is 1 for 'yes'
je main ;if so then jump to main

call exit ;exit program if doesn't jump

это код, который ломается только при этих обстоятельствах (просто проходит через программу, бесконечно продолжающуюся, даже если предполагается, что он запрашивает пользователя), просто использует ответы последнего циклана все запросы под бесконечным циклом.

...