Assembler - jak sprawdzić czy podana wartość jest liczbą


(Marek Gadzalski) #1

Witam serdecznie,


(Marcin Obala) #2

Cześć

 

Jeśli dobrze pamiętam ze studiów to robiłem to w ten sposób, że:

  1. Wczytaj znak - nie pamiętam które już to przerwanie było (przy tym sposobie nie dało się używać backspace)

  2. Porównać go do kodu ascii liczb zero to 48 więc dalej 1 to 49 itd.

  3. Porównać go też do entera czy jakiegokolwiek znaku który chcesz użyć za zakończenia wczytywania

  4. Jeśli ktoś wprowadzi coś innego niż liczbę to możesz od razu przerwać mu wpisywanie, jak ktoś do entera wpisywał same cyfry to puścić kod dalej.

 

Niestety jeśli chodzi o kod to nie pamiętam w których rejestrach pojawiały się wpisywane wartości oraz przerwań nie pamiętam. Co do samej pętli to jest ona prosta, robisz etykiety, później cmp i jakieś różne jmp (je jne i inne).