Сборка Моторола 68000

У меня возник простой вопрос. Не знаю, с чего начать. Мне нужно простое математическое вычисление (+,_,*,/), чтобы вывести как минимум 2 цифры.

Пример: 1+2=03

move #1,D0
move #2,D1
add.l D0,D1

приведенное выше должно выводить 03. ...выводит 3.

Я должен отобразить 0, но обычная инструкция добавления этого не делает. Как вообще к этому подступиться? я потерялся. ?? ТЫ.


person MattBorg    schedule 14.09.2017    source источник
comment
Выше ничего не выводит. Значение 3 является чисто абстрактным объектом. Двоичное кодирование электрическим током в регистре d0 можно интерпретировать как значение 3 (два младших бита устанавливаются в 1, остальные в 0, если вы принимаете значение бита i как 2 ^i), но это не настоящая математическая абстракция 3, а просто несовершенное зеркальное отражение, спроецированное на электрический ток. Между тем человечество, написавшее глиф 3, не является ни самим значением 3, но опять же просто несовершенной проекцией в глифы шрифта с использованием десятичного кодирования. Если вы хотите 03 из значения 3, выведите два символа (3 дел./мод. 10).   -  person Ped7g    schedule 14.09.2017
comment
чтобы перефразировать мой первый комментарий: значение из add в порядке. Что вам нужно, так это код форматирования... как в C printf("%d", 3) и printf("%02d", 3), оба будут отображать одно и то же значение 3, но первый выведет один символ '3', второй выведет два символа, '0' и '3'. В зависимости от того, что вы используете для вывода значения (какую-то библиотеку?), оно может уже содержать некоторый код форматирования.   -  person Ped7g    schedule 14.09.2017
comment
поэтому, если я поставлю printf(%02d, 3) в дизассемблер, я должен получить свой ответ?? ок, спс за подсказку. Попробую. Советы придут :)   -  person MattBorg    schedule 14.09.2017
comment
Я пробовал.. printf(02d3) печатает 033. ближе, но без бобов   -  person MattBorg    schedule 14.09.2017
comment
Printf(%02d,3) СПАСИБО, ПАРЕНЬ!!! получил мой дизассемблированный код   -  person MattBorg    schedule 14.09.2017


Ответы (1)


Ответ написал выше

Дизассемблировать printf("%02d",3) в дизассемблере 68k (IDE68k)

person MattBorg    schedule 14.09.2017