Алгоритм перевода систем счисления - Assembler

Узнай цену своей работы

Формулировка задачи:

Доброго дня! Очень большой новичок в языке Ассемблера, прошу помощи с заданием: Необходимо реализовать алгоритм, использующий команды семейства процессоров 80х86 В регистре DX находится произвольное небольшое число десятичной системы. Вводится числовая переменная, которая будет являться основанием новой системы счисления. Число, находящееся в DX, переводится в эту новую систему счисления и записывается в массив (именно число, а не код числа).

Решение задачи: «Алгоритм перевода систем счисления»

textual
Листинг программы
xor bh,bh
mov bl,<основание СС>
mov ax,dx
M:xor dx,dx
  div bx
  mov <память для цифры>,dl
  test ax,ax
  jnz M

Объяснение кода листинга программы

  1. xor bh,bh - выполняет операцию исключающего ИЛИ над регистрами bh (верхний байт) и bh (нижний байт), результат записывается в bh (верхний байт). Результат операции равен 0.
  2. mov bl,<основание СС> - выполняет операцию переноса значения основания системы счисления из памяти в регистр bl.
  3. mov ax,dx - выполняет операцию переноса значения из регистра dx в регистр ax.
  4. xor dx,dx - выполняет операцию исключающего ИЛИ над регистром dx и dx, результат записывается в dx. Результат операции равен 0.
  5. div bx - выполняет деление регистра dx на значение из регистра bx. Результатом является частное и остаток, которые сохраняются в регистрах ax и dx соответственно.
  6. mov <память для цифры>,dl - выполняет операцию переноса значения из памяти в регистр dl. Значение в памяти - это цифра, которую необходимо перевести.
  7. test ax,ax - выполняет тест на неравенство регистра ax нулю.
  8. jnz M - если результат теста не равен нулю, то происходит переход к метке M. Список переменных:
    • bh (верхний байт)
    • bl (нижний байт)
    • ax (регистр ax)
    • dx (регистр dx)
    • bx (регистр bx)
    • dl (регистр dl)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы