Re[5]: asm x86 in msvc80: __asm idiv
От: Minstrell Россия  
Дата: 01.10.06 07:26
Оценка:
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, Аноним, Вы писали:


А>>Деление происходит пары DX:AX на аргумент. В том случае, если вы записываете 5 в AX, содержимое DX неизвестно. Т.е. при этом может возникнуть исключение. CWD же стоит, чтобы расширить число со знаком в AX до числа со знаком в DX:AX.

V>Хм.
V>В зубкове про idiv сказано следующее:
V>
V>Выполняет целочисленной деление со знаком AL, AX или EAX (в зависмости от размера иточника) на источник (регистр или переменная) и помещает результат в AL, AX или EAX, а остаток — в AH, DX или EDX соответственно. ...
V>

V>Наврано?
Недосказано. В общем CWD там нужна обязательно. Для положительных чисел попробуйте (конечно, это не универсально) заменить CWD на XOR DX,DX — должно работать без исключений. Для отрицательных — MOV DX,0FFFFh. Но собственно это и делает CWD. В Зубкове это пропущено... Скачайте родной мануал и используйте его.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.