Как определить, когда пользователь вводит недопустимый ввод, такой как «1B0», тогда программа скажет (ветвь invalid
) «недопустимая строка, введите заново значение». Я предполагаю, что вы используете cmp
для сравнения ввода пользователя с чем-то еще, но я не знаю, с чем сравниваю этот ввод. Любая помощь очень ценится.
num1Enter:
@ OUTPUT INSTRUCTION TO CONSOLE
ldr r0, =enterNum1 @ Load address of r0 into enterNum1
bl putstring @ Display the string to the terminal
@ READ-IN NUM1 DATA
ldr r0, =szNum1 @ Load address of r0 into szNum1
mov r1, #512 @ Load address of r1 into 512 bytes
bl getstring @ Read a string of characters terminated by a null
@ CONVERT NUM1 TO INT
ldr r0, =szNum1 @ Load address of r0 into szNum1
bl ascint32 @ Converts a string of characters to an equivalent 4-byte (word) value.
ldr r1, =iNum1 @ Load address of r1 into iNum1
str r0, [r1] @ Store r0 into address of r1
ldr r0, =iNum1 @ Load address of r0 into iNum1
ldr r1, [r0] @ Load address of r0 into szNum1
b invalid
invalid:
ldr r0, =invalidMsg
bl putstring
@ NEWLINE
ldr r0, =cCr
bl putch
b num1Enter // return to num1Enter