Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 125

Раздел: Ассемблер
/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Не получается сосчитать значение такого выражения в 32-х битных регистрах. На 16-битных код работает, а на 32 не могу перевести. Помогите, помалуйста.
Выражение: (a^3 + b)/a
Значения a и b получаю с помощью scanf из стандартной библиотеке в Linux. Оба возвращаются и хранятся, соответсвенно, в eax и ebx.

    @agb:
    push ebx
    mov ebx, eax
       xor edx, edx
       imul ebx ; edx::eax
       imul ebx ; edx::eax::ecx
 
    pop ebx
       add ecx,  ebx
       adc eax, 0
    adc edx, 0
 
       mov ebx, var_a
       idiv ebx ; edx::eax
 
    ;answer = eax
    jmp @out

Приложение:
  1. NASM, Linux Ubuntu 12.04


IlluminatI Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: IlluminatI (статус: 2-ой класс)
Вопрос отправлен: 10 мая 2012, 01:24
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 1; последнее сообщение — 10 мая 2012, 19:13; участников в обсуждении: 1.
bugmenot

bugmenot (статус: 3-ий класс), 10 мая 2012, 19:13 [#1]:

Тащем-та на 386 процах можно не мучаться с однооперандной формой.
Которая, что важно, не использует неявно регистр C.
D:A ← A * op
виконання програми розпочинається з того самого мiсця, де призупинилося.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:00
Выполнено за 0.03 сек.