2010-11-05 3 views
1

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

Как я могу проверить, действительно ли пользователь ввел целое число, а не что-то еще.

Ответ может быть синтаксисом Ассамблея агностик

ответ

3

В данном конкретном случае с использованием MIPS. Системный вызов, который выполняет услугу «InputDialogIn», возвращает в регистре $a1 значение статуса, в зависимости от ввода.

  • 0: ОК Статус
  • -1: ввод не может быть разобран
  • -2: Отменить был выбран
  • -3: кнопки ОК выбрана, однако, нет данные вводятся в поле

Поэтому использование значения в op beq до $ 0, успешно проверяет ввод.

Примечание: Инструкция/Syscall 51 «InputDialogIn», является эксклюзивным для тренажера MARS.

1

Там простой способ узнать, как это можно сделать - написать эту функцию проверки в C и компилировать в ассемблере и попытаться сопоставить C конструирует, что вы видите (GCC -S, различные коммутаторы -fdump-XXX позволяют комментировать код ассемблера).

Смежные вопросы