1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
1

Деление с остатком

10.02.2013, 17:31. Показов 18947. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется такая ассемблерная вставка:
ina a=3;
int b=2;
int c;
int e;
Assembler
1
2
3
4
5
6
7
        __asm{
                mov eax, a   // загружаем значение переменной a в регистр EAX
                mov ebx, b   // загружаем значение переменной b в регистр EBX
                div ebx
                mov c, eax
                mov e, edx
        }
Требуется разделить a на b.
По инструкции в EAX должно получиться частное, в EDX - остаток.

Но в результате выполнения в eax получается неопределенное значение, в edx - единица.

Как правильно разделить с остатком?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2013, 17:31
Ответы с готовыми решениями:

Деление с остатком
Отлаживаю программу через TD. вот код: xor dx, dx ;В регистре ah находится 05h, а в al 6Ah...

Деление с остатком
Здравствуйте! Помогите пожалуйста. Надо разделить a на b, но чтобы остаток выводился. Что-то...

Деление с остатком
вот собственно сама задача Проблема с делением если деление происходит без остатка то все работает...

Деление с остатком в регистре
#include "stdafx.h" #include <iostream> #include "conio.h" using namespace std; void...

7
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
10.02.2013, 17:45 2
jen941, правильно будет так
Assembler
1
2
3
4
5
                mov eax, a   ; загружаем значение переменной a в регистр EAX
                mov edx, 0; обнуляем регистр edx
                div b   ; делим содержимое регистров edx:eax на значение b
                mov c_, eax ; "c" в ассемблере служебное слово, поэтому лучше так переменную не называть 
                mov e, edx; остаток
1
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
10.02.2013, 23:06  [ТС] 3
Получается 3/2=1.1
Где-то ошибка с остатком

3/2=1.1 (неверно)
4/2=2.0 (верно)
7/4=1.3 (неверно)
0
Клюг
7674 / 3189 / 382
Регистрация: 03.05.2011
Сообщений: 8,380
11.02.2013, 02:39 4
Цитата Сообщение от jen941 Посмотреть сообщение
Где-то ошибка с остатком
Кхе... Свежо предание. Полные исходники в студию.
0
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
11.02.2013, 03:42 5
Цитата Сообщение от jen941 Посмотреть сообщение
Получается 3/2=1.1
Где-то ошибка с остатком
3/2=1.1 (неверно)
4/2=2.0 (верно)
7/4=1.3 (неверно)
это почему не верно?
3/2=1.5 или целочисленный результат 1
умножаем результат на делитель и вычитаем из делимого -- получаем остаток
3 - 2*1= 1
7 - 4*1= 3
0
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
11.02.2013, 17:10  [ТС] 6
Цитата Сообщение от Mikl___ Посмотреть сообщение
умножаем результат на делитель и вычитаем из делимого -- получаем остаток
Точно, здесь же это имеется в виду...
А как получить 3/2=1.5 ?
0
Ушел с форума
Автор FAQ
16276 / 7601 / 1064
Регистрация: 11.11.2010
Сообщений: 13,616
11.02.2013, 17:29 7
Цитата Сообщение от jen941 Посмотреть сообщение
А как получить 3/2=1.5 ?
тут несколько путей
  • перед делением умножить А на сто, а при выводе результата установить запятую в нужное месть
  • при делении A/B получим остаток Х допустим мы хотим получить дробную часть с точностью до сотых https://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{X}{B}=\frac{Y}{100} https://www.cyberforum.ru/cgi-bin/latex.cgi?Y=\frac{X\times 100}{B} умножаем остаток на 100 и делим на В
  • используем FPU
1
1 / 1 / 0
Регистрация: 19.12.2012
Сообщений: 69
11.02.2013, 17:50  [ТС] 8
Спасибо, разобрался
0
11.02.2013, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2013, 17:50
Помогаю со студенческими работами здесь

Деление с остатком возвращает ноль
Написал процедуру для перевода в десятичный символьный вид, а при делении выдает деление на ноль....

Деление выражений с остатком. Целое и остаток отдельно. Как записать их вместе?
Задача : Написать программу на языке ассемблера выполняющую вычисление (Первая работа: переменные...

Умножение, деление и деление с остатком
Рассмотрим эти операции на примере. static void Main() { int i = 100, j = 15; double a =...

Деление с остатком
Всем доброго времени суток!) Есть такая задачка: Дано одномерный массив Y, состоящий из 14...

Деление с остатком
Код в .pl: isnumber(zero). isnumber(s(X)) :- isnumber(X). plus(zero,X,X) :- isnumber(X)....

Деление с остатком
Используя StringGrid заполненный от руки любыми числами, вычислить количество чисел делящихся на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru