Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вычислить несократимую дробь, используются макросы 
V
    Опции темы
Curiosa
Дата 27.6.2009, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.5.2009

Репутация: нет
Всего: нет



Задача вот какая: Заданы два числа  p и q (p<q), найти такие числа  чтоб дробь была несократима.  Алгоритм вроде правильный, код:
Код


baseM macro
; выполняет сокращение двух чисел по принципу - если первое делится то делим второе , продолжается цикл

divP:
    mov ax, p
    div bx
    
    mov dx, ax
    cmp ah, 0
    je divQ
    cmp p, bx
    jnb exitM0
    inc bx
    jmp divP
    
divQ:
    mov ax, q
    div bx
    
    cmp ah, 0
    je bothdiv
    cmp q, bx
    jnb exitM0
    inc bx
    jmp divP

bothdiv:
    mov p, dx
    mov q, ax
    jmp divP
exitM0:

endm
.model small
stack 64
dataseg
    p dw 40
    q dw 50
    
codeseg
    mov ax, @data
    mov ds, ax
    
    mov bx, 2
    baseM

    mov ax, p
    mov bx, q
    
    mov ax, 4C00h
    int 21h
end



Загрузочный проходит с ошибкой  Divide overflow, в дебагере при первом проходе фрагмента
Код

divQ:
    mov ax, q
    div bx

 bx =2 , но опять-таки  деление на ноль... В чем ошибка?


Это сообщение отредактировал(а) Curiosa - 27.6.2009, 00:59
PM MAIL   Вверх
ФедосеевПавел
Дата 27.6.2009, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 7.2.2009

Репутация: нет
Всего: 10



команда div bx делит не ax , а регистровую пару dx:ax на bx.
В dx у тебя какой-то мусор. Перед делением обнули dx.
PM   Вверх
Curiosa
Дата 27.6.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.5.2009

Репутация: нет
Всего: нет



так и сделала)) спасибо
PM MAIL   Вверх
Curiosa
Дата 27.6.2009, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 22.5.2009

Репутация: нет
Всего: нет



так и сделала)) спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.