Алгоритм перевода систем счисления - 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
Объяснение кода листинга программы
xor bh,bh
- выполняет операцию исключающего ИЛИ над регистрами bh (верхний байт) и bh (нижний байт), результат записывается в bh (верхний байт). Результат операции равен 0.mov bl,<основание СС>
- выполняет операцию переноса значения основания системы счисления из памяти в регистр bl.mov ax,dx
- выполняет операцию переноса значения из регистра dx в регистр ax.xor dx,dx
- выполняет операцию исключающего ИЛИ над регистром dx и dx, результат записывается в dx. Результат операции равен 0.div bx
- выполняет деление регистра dx на значение из регистра bx. Результатом является частное и остаток, которые сохраняются в регистрах ax и dx соответственно.mov <память для цифры>,dl
- выполняет операцию переноса значения из памяти в регистр dl. Значение в памяти - это цифра, которую необходимо перевести.test ax,ax
- выполняет тест на неравенство регистра ax нулю.jnz M
- если результат теста не равен нулю, то происходит переход к метке M. Список переменных:- bh (верхний байт)
- bl (нижний байт)
- ax (регистр ax)
- dx (регистр dx)
- bx (регистр bx)
- dl (регистр dl)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д