Задать вопрос
@Contego

Как найти разность двух чисел на ассемблере?

Здравствуйте!

Задача: найти Z = X - Y, где X, Y - двойные слова(4 байта), на 16-битном процессоре.

Пока смог придумать только такой алгоритм: извлекать побайтово с конца X в AL, сравнивать с соответствующим байтом Y, если извлеченный байт X меньше соотв. байта Y, прибавлять +1 к регистру AH, отнимать 1 у [Y + 1], проводить вычитание и записывать результат в Z. Но такой алгоритм, например, не получит правильный Z, если X меньше Y. Да и, как мне кажется, он неоптимален.

Может есть какой-то более оптимальный и правильный алгоритм? Может, можно каким-то образом использовать регистры флагов?
  • Вопрос задан
  • 3411 просмотров
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы