Вычитание  в ассемблере

Возникла такая проблема: Мне нужно было поделить два числа , а потом отнять от результата деления 3-е число.

AssemblerВыделить код

1
2
3
4
5
6
7
8
9

mov eax,res1           ;первое число
mov ebx,res2           ;второе число
mov edx,0               ;обнуляем edx
idiv ebx                  ;res1/res2
mov res1,eax           ;сохраняем целую часть 
mov res2,edx           ;сохраняем остаток
 
mov ebx,res3          ;третье число
sub res1,ebx

Деление вроде получилось сделать , проверял на калькуляторе - всё верно ( делится положительное число на положительное).

Но вот отнять никак не получается. Не пойму , что от чего отнимать , ведь при делении результат записывается в два регистра : eax и edx . Ещё, исходя из условия , результат деления меньше , чем число которое нужно отнимать , то есть должно получиться отрицательное значение.

Пробовал просто отнимать от целой часть - не получается.

Помогите , пожалуйста , решить этот вопрос .

Заранее огромное спасибо за помощь .

Добавлено через 30 минут

сделал так :

AssemblerВыделить код

1
2
3
4

mov ebx,res4
sbb res1,ebx
 
mov eax,res1   ;результат

Но как же сделать так , чтобы учитывался остаток ?