Как вывести на экран

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
mm
Сообщения: 34
Зарегистрирован: 19 фев 2004, 10:36
Контактная информация:

А что вывести то надо?
a?
или что то другое?
Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

Алгоритм такой:
  • Ввод чисел a,b,c,d с клавиатуры как строк. Например функцией DOS (int 21h) 0Ah. Здесь и далее - описание функций смотри в документации.
  • Преобразование ASCII строк в десятичные числа. Примерный алгоритм: отнимаешь от каждого ASCII символа 31h (код '0'). При этом получаешь собственно цифру. Далее ее умножаешь на 1 для последней, на 10 для предпоследней, на 100 для предпредпоследней и т.д. и складываешь результат. Это и есть введенное число.
  • Умножаешь/делишь/вычитаешь
  • Преобразовываешь обратно в строку. Тут чуть сложнее, но готовых алгоритмов в Интернете должно быть завались.
  • Выводишь DOS функцией 09h.
Врядли я помог, если ты совсем не знаешь ассемблер, но писать программу целиком мне некогда :)
*provided AS IS
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Есть два различных понятия: "напишите вместо меня" и "объясните". Если ты по поводу первого, то, похоже, вопрос не к нам: все люди занятые. Если же нужно ответить на конкретные вопросы, то вперёд - поможем, чем сможем.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

мне нужно что бы результат оставался на экране пока не нажмешь любую клавишу
mov ah,8
int 21h
*provided AS IS
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Или, что более предпочительно:

Код: Выделить всё

xor   ax, ax
int    16h
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить