Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / так делить нельзя ? / 9 сообщений из 9, страница 1 из 1
30.01.2006, 01:16
    #33509724
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
void CAsm3Dlg::OnButton3()
{

int a,b,c,d;
UpdateData(true);
a=m_edit1;
d=m_edit4;

_asm{
push eax
push ebx
push ecx
push edx
sub eax,eax
sub ebx,ebx
sub ecx,ecx
sub edx,edx
mov eax,a
mov edx,d
div edx

mov a,eax
pop edx
pop ecx
pop ebx
pop eax
}

m_edit1=a;
UpdateData(false);

}
...
Рейтинг: 0 / 0
30.01.2006, 08:48
    #33509861
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
Ухх , а я уже ассемблер подзабыл ...
...
Рейтинг: 0 / 0
30.01.2006, 10:24
    #33510037
saint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
В зависимости от того, что и на что вы делите.
Здесь у вас: EDX:EAX / EAX = EAX % EDX
Но что то мне кажется по
Код: plaintext
1.
2.
a=m_edit1;
d=m_edit4;
что вы не этого хотели
...
Рейтинг: 0 / 0
30.01.2006, 10:35
    #33510081
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
Вариант с умножением работает превосходно:

mov eax,a
mov edx,d
mul edx
mov a,eax


Деление сделал по аналогии с 16-разрядными регистрами.
Может быть надо указать word ptr ax ?
Об этом вчера подумал, но пока не пробовал. Вроде бы классика, но не складывается. Что-то видимо упускаю.
...
Рейтинг: 0 / 0
30.01.2006, 10:45
    #33510115
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
Ошибок при компиляции и линковке нет. После запуска на исполнение с пощью EXECUTE ошибки тоже нет. Ошибка возникает после ввода данных и клика по кнопке, запускающей процесс вычислений - появляется сообщение об ошибке и предложение сообщить в Microsoft.
...
Рейтинг: 0 / 0
30.01.2006, 11:01
    #33510187
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
Вариант с word ptr попробовал - не вариант. Придется пошагово мозговым дебагером шарить. Во всей логике разбираться.
...
Рейтинг: 0 / 0
30.01.2006, 11:03
    #33510195
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
saintВ зависимости от того, что и на что вы делите.
Здесь у вас: EDX:EAX / EAX = EAX % EDX
Но что то мне кажется по
Код: plaintext
1.
2.
a=m_edit1;
d=m_edit4;
что вы не этого хотели

Скорее всего именно здесь собака и зарыта!
...
Рейтинг: 0 / 0
30.01.2006, 12:32
    #33510530
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
Оказалось не зарыта. Проверил вот так:

//mov eax,a
mov eax,133
//mov edx,d
mov edx,3
div edx
mov a,eax

Значит сам процесс деления организован мною не правильно.
...
Рейтинг: 0 / 0
03.02.2006, 20:48
    #33523145
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
так делить нельзя ?
Несколько дней назад разобрался. Забыл общественности доложить. Заменяю div edx на div ebx и все работает без проблем.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / так делить нельзя ? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]