На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Умножение в Turbo Assembler'e , Как это правильно делается?
    <-----------------------------------------------------------------------------------------
    Давно изучаю Паскаль, но вот захотелось изучить и такую вещь как Турбо асм - и тут же пошли глюки. Сложение, вычитание показалось простым:

    ExpandedWrap disabled
      var
      a,b,c : integer;
      begin
      read(a,b);
      asm
      move ax,a
      add ax,b
      mov c,ax
      end;
      writeln('c=',c);
      end.


    Но вот беда:
    Умножение почему - то не получается. Я видел пример:
    ExpandedWrap disabled
      ----
      asm
      ---
      imul y
      ----
      end;

    Я понимаю, что результат будет в переменной y, но что тут за операнды?
    Кто - нибудь, объясните плиз.
    ----------------------------------------->
    Сообщение отредактировано: Error of Nature -
      Error of Nature, тебе кажется, что "Заготовки для Pascal FAQ" - самое подходящее место для твоего вопроса? А правила ты читал? Особенно Правила, п.3 ?

      Добавлено
      Цитата Error of Nature @
      Я понимаю, что результат будет в переменной y, но что тут за операнды?

      ExpandedWrap disabled
        asm
          mov ax, a
          imul b
          mov c, ax
        end;
        Ой, прости, просто мне срочно надо, если можешь - ответь, а потом удали тему ок?
        З.Ы. Насчет правил не беспокойся - перечитаю.

        Добавлено
        А можешь сказать попроще, вроде берется это, запихивается в то,перемножается с этим, а то этот код, я думаю, неоднозначен.
          Что значит "неоднозначен"? Тогда 2 вопроса:
          1. Однозначен ли тот код, который ты привел для сложения чисел?
          2. Запускал ли ты приведенный фрагмент, или решил сам поработать компилятором и поискать ошибки?

          IMUL умножает знаковое целое число, переданное ему в качестве параметра, со знаковым целым, хранящимся в регистре AL или AX... Результат - в AL/AX
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0318 ]   [ 15 queries used ]   [ Generated: 27.04.24, 17:29 GMT ]