Страница 1 из 1
ассемблер: char to int
Добавлено: Чт июн 02, 2011 20:37:01
ascentman
Добрый вечер форумчане. Помогите реализовать в ассемблере для МК51 или просто алгоритм напомнить преобразования символьного типа в тип integer.
Дело в том что я делаю программку сравнение двух чисел, ввожу их через терминал используя UART. Получив числа нужно их в тип int и сравнить.
Алгоритм примерно такой: в 30h-39h сохраняется 0-9; если введено 1, то я получаю код 0 + смещение. Но дальше-то туго: надо какую двохбайтну переменную или как?
Re: ассемблер: char to int
Добавлено: Чт июн 02, 2011 20:40:40
ploop
Не понял, в чём проблема. Нужно вводить только числа? Насколько большие?
Re: ассемблер: char to int
Добавлено: Чт июн 02, 2011 20:42:45
ascentman
та от 0 до 9
Re: ассемблер: char to int
Добавлено: Чт июн 02, 2011 20:49:59
Psych
А разве в ассемблере есть тип переменных? У регистров же фиксированная длина.
Re: ассемблер: char to int
Добавлено: Чт июн 02, 2011 20:59:48
ploop
Что тянуть-то из всех?
Цифра от 0 до 9 легко приводится к числовому виду вычитанием 30h из кода символа.
А вот число нужно потом из этих цифр высчитывать. Или число не нужно?
Re: ассемблер: char to int
Добавлено: Чт июн 02, 2011 21:07:12
ascentman
ploop писал(а):
Цифра от 0 до 9 легко приводится к числовому виду вычитанием 30h из кода символа.
Может я немного не так сформулировал вопрос:
Вот маю я полученную цифру с UART в типе char, имею вторую такую цифру. Чтобы их сравнить нужно преобразовать в тип int для выполнения действий и снова вывести в терминале эти цифры, и вывести какое из них больше
Re: ассемблер: char to int
Добавлено: Чт июн 02, 2011 21:12:03
ascentman
Psych писал(а):А разве в ассемблере есть тип переменных? У регистров же фиксированная длина.
я получаю '1 ', '2' ... после вызова UART_read. Чтобы ТЕХНОКОНТИНЕНТ числа, нужно выделить двохбайтну переменную (столько имеет тип int) ... и так сказать создать тип int загрузив их в аккумулятор
Re: ассемблер: char to int
Добавлено: Чт июн 02, 2011 21:14:19
ploop
ничё не понял. Я пас...
Re: ассемблер: char to int
Добавлено: Пт июн 03, 2011 07:19:12
ARV
учиться надо было лучше, тогда, может быть, хоть вопрос бы смогли сформулировать правильно.
если вы принимаете символы-цифры, то их можно сравнивать непосредственно, без всяких преобразований: '2' > '1' точно так же, как 2 > 1