Klajdi Murati Ответов: 2

Как преобразовать десятичное число в двоичное с помощью языка ассемблера?


У меня есть это задание для преобразования 25 (10) - & gt; binay(2) на языке ассемблера. Я не знаю что делать дальше:

Что я уже пробовал:

INP, X, AD1 / / a
INP, X, AD2 / / 2
FEA, X, AD1 / / A=a
MOD, X, AD2 //

Jochen Arndt

"25" и "11001" - это всего лишь два представления одного и того же значения. Таким образом, хранение его в регистре или памяти с помощью соответствующего ассемблера directice делает эту работу.

2 Ответов

Рейтинг:
2

Nelek

Переводя то, что сказал Кпаллини в другом ответе...

Вы также можете перевести десятичную дробь в двоичную вручную:

25 / 2 = 12, rest = 1
12 / 2 =  6, rest = 0
6  / 2 =  3, rest = 0
3  / 2 =  1, rest = 1

Теперь вам просто нужно вернуться назад с результатами и вы получите двоичный код 11001

Другой пример: 147
147 / 2 = 73, rest = 1
73  / 2 = 36, rest = 1
36  / 2 = 18, rest = 0
18  / 2 =  9, rest = 0
9   / 2 =  4, rest = 1
4   / 2 =  2, rest = 0
2   / 2 =  1, rest = 0
дает вам: 10010011

Теперь вы можете попробовать реализовать его на конкретном языке ваших потребностей

записка: это всегда даст вам двоичный код до первого представителя 1, Если вы хотите, чтобы они были сгруппированы в байты (с нулями, заполняющими левую сторону), вы должны сделать это сами, подсчитав, сколько "цифр" вы получаете, и заполнив их вручную


Klajdi Murati

Я знаю, как преобразовать десятичное число в двоичное. Я просто не знаю.я знаю, как это сделать с помощью ASM

Dave Kreskowiak

Мы не собираемся писать ваш код для вас.

Кроме того, код, который вы пишете, полностью зависит от ассемблера, который вы используете, и платформы, на которую вы ориентируетесь.

Nelek

"Я не знаю, что делать дальше" - это не то, что проясняет. Я просто дал вам идею алгоритма, если вы уже сейчас знаете, как это сделать, то вам следовало бы дать более подробную информацию в своем вопросе.

Рейтинг:
2

CPallini

Чтобы получить строковое представление двоичного числа, вы можете итеративно проверить наиболее значимый бит, а затем сдвинуть его влево. Детали реализации зависят от используемого языка ассемблера.