| 
| 
 | Вопрос # 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
|  |   Вопрос задал: IlluminatI (статус: 2-ой класс)Вопрос отправлен: 10 мая 2012, 01:24
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 1; последнее сообщение — 10 мая 2012, 19:13; участников в обсуждении: 1. 
|   | bugmenot (статус: 3-ий класс), 10 мая 2012, 19:13 [#1]:Тащем-та на 386 процах можно не мучаться с однооперандной формой. Которая, что важно, не использует неявно регистр C.
 D:A ← A * op
 виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |