Автор Тема: ЧАВО: может быть здесь уже есть ответ на ваш вопрос.  (Прочитано 4661 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн monax

  • Губернский секретарь
  • **
  • Сообщений: 31
  • Репутация: 1
  • Пол: Мужской
Небольшой список рекомендаций:
  • указывайте пожалуйста компилятор (tasm, masm, fasm, nasm, goasm и т.д.) это избавит Вас от необходимости отвечать на уточняющие вопросы, а другим форумчанам не нужно будет ломать голову, на чём же всё-таки написан код;
  • указывайте ОС (dos, win32, *nix и т.д.), для которой пишется код, или указывайте, что код должен работать на возможно большем количестве ОС (как это ни странно звучит, но некая кроссплатформенность на ассемблере тоже достижима);
  • указывайте архитектуру, для которой пишется программа (x86, asm51 и т.д.). Если программа пишется для контроллера, то указывайте не только архитектуру процессора, но и модель контроллера;
  • задавая вопрос, избегайте слов "ПОМОГИТЕ", "ПАМАГИТЕ", "СПАСИТЕ", "СЕССИЯ" и т.п. Нарушители будут наказаны.
  • Пользуйтесь поиском по форуму!
  • Будьте взаимно вежливы. Программирование на assembler'e, занятие тяжёлое и нервное, не каждый может оставаться спокойным, но всё же постарайтесь.
« Последнее редактирование: БХЭвпСам 24, 2007, 05:12:14 pm от monax »

Оффлайн monax

  • Губернский секретарь
  • **
  • Сообщений: 31
  • Репутация: 1
  • Пол: Мужской
ЧАВО: вывод чисел.
« Ответ #1 : јРЩ 19, 2007, 12:22:38 am »
Листал форум и наткнулся на вот это http://forum.ishodniki.ru/index.php/topic,11498.0.html, чем был слегка недоволен. Причин недовольства несколько:
  • поиском никто не пользуется;
  • если пользуется, то анализировать результаты не хочет;
  • несколько неправильное понимание хранения информации в памяти ЭВМ.

Начнём с последнего пункта. Запомните пожалуйста, для компьютера нет такого понятия как шестнадцатиричная, десятичная, восьмеричная системы счисления. И уж совсем неправильно думать о переводе из одной системы в другую, как об операциях эвм (я имею ввиду не только ПК, поскольку это раздел ассемблера, то тут могут обсуждаться и микроконтроллеры). Все данные, хранящиеся в памяти ЭВМ, хранятся там в виде 0 и 1, а все эти переводы из одной в другую - всего лишь работа по представлению чисел в необходимом человеку виде. То есть речь идёт о преобразовании числа в строку, которая и будет выводиться на экран.
В целом же алгоритм такой:
  • разделить число на 10;
  • получить остаток;
  • прибавить к остатку код нуля - '0', то есть получить код символа, который отобразит нужную цифру;
  • сравнить число с нулём;
  • если больше нуля, то переход не первый пункт.

А что делать с полученной цифрой - личное дело каждого. Можно записать в строку, а потом передать куда-нибудь или вывести на экран, можно сразу выводить на экран (посимвольно).

Запомните! Когда вам хочется преобразовать число из одной системы счисления в другую, вы на самом деле лишь изменяете способ отображения информации на необходимый человеку, само число как состояло из нулей и единиц, в таком же виде и останется.