Я пытаюсь сравнить введенное пользователем число с 100, и если оно больше или равно 100, оно печатает «число больше или равно», а если оно меньше 100, оно печатается соответственно.Он хорошо обрабатывает входную часть, но программа сразу же завершается после ввода.Я очень новичок в сборке, это мой второй день работы с ним, так что будьте спокойны со мной.Спасибо за любую помощь!
.global main
main:
prompt:
ldr r0, = numPrompt
bl printf
get_input:
ldr r0, =numInputPattern
sub sp, sp, #4
mov r1, sp
bl scanf
ldr r1, [sp, #0]
add sp, sp, #4
printinputasNum:
cmp r0, #100 @compare num in r0 to 100
bne Test1 @if not equal, jump to Test1
ldr r0, = greaterorequalOutput
bl printf
b ExitAll
Test1: blt Test2
ldr r0, = lessthanOutput
bl printf
b ExitAll
Test2: ldr r0, = greaterorequalOutput
ExitAll:
myexit:
mov r7, #0x01
svc 0
.data
.balign 4
numPrompt: .asciz "Input a number: "
.balign 4
numInputPattern: .asciz "%d"
.balign 4
lessthanOutput: .asciz "The input number is less than 100 \n"
.balign 4
greaterorequalOutput: .asciz "The input number is greater than or equal to 100 \n"
.global printf
.global scanf