сборка x86 - masm32:абсолютная разбивка операций умножения и деления [закрыто]

StackOverflow https://stackoverflow.com//questions/10684736

  •  12-12-2019
  •  | 
  •  

Вопрос

Я просмотрел весь Интернет в поисках простой для понимания оценки того, как умножать и делить в сборке masm32.Мои вопросы таковы:

  1. Куда мне следует поместить умножаемые числа?

  2. Где я должен разместить делимые числа?

  3. Куда девается остаток при делении?

Не мог бы кто-нибудь, пожалуйста, ответить на это за меня?

Спасибо,

Программа

Это было полезно?

Решение

Ответ на этот вопрос можно очень легко найти, заглянув на соответствующую страницу сайта. Ссылка на набор инструкций Intel 64 и IA-32.В данном случае вы ищете MUL и DIV инструкции (в случае, если вы работаете с неподписанными операндами) или IMUL и IDIV инструкции, которые используются для умножения и деления целых чисел со знаком.

Итак, на случай, если вам действительно не хочется просматривать руководство :

  1. Один из операндов умножения должен быть помещен в EAX зарегистрируйтесь, если вы используете MUL.Это немного более гибко, если вы используете IMUL инструкция, которая позволяет указать исходный и конечный регистры.
  2. Делимое число всегда является 64-разрядным числом в 32-разрядном режиме.Старшие биты переходят в EDX, в то время как младшие биты переходят в EAX.
  3. Остаток всегда помещается в EDX.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top