Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопросы новичка ч1, :) 
V
    Опции темы
FelikZ
Дата 7.11.2007, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

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



Привет! Помогите пожалуйста понять почему:

№1
дано a=-198d=FF3Ah, b=22d=16h, c=9d=9h
a/c+b=?
-198/22+9=-9+9=0

Вот, что написал я:
Код

mov bx, ff3a ;bx=a
mov al, 16    
cbw              ;ax=b
xchg ax,bx    ;ax<=>bx
idiv bx          ;ax=ax/bx                    (в теории должно получися -22d=FFEAh, а получается 0B99h=2969d :((((()
add ax,9      ;ax=ax+c

Почему?
-------------------------------

№2
a/b+b/c

a=0258h, b=FEB9h, c=000Ch
Вот написал:
Код

mov ax, [a]
idiv word ptr [b]
xchg ax, bx
mov ax, [b]
idiv word ptr [c] ; Ошибка: "Переполнение деления" :(((
add bx, ax

Что это такое и как бороться?
-------------------------------

Спасибо за помощь!
Пишу это все в "debug.com" :(.


--------------------
user posted image
PM WWW ICQ Skype   Вверх
Akina
Дата 7.11.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(FelikZ @  7.11.2007,  01:21 Найти цитируемый пост)
idiv bx          ;ax=ax/bx

Щазз! а посмотреть повнимательнее описание команды?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
FelikZ
Дата 7.11.2007, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Старый Маразматик
**


Профиль
Группа: Участник
Сообщений: 380
Регистрация: 1.12.2006
Где: Vault 13

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



Akina, нет у меня хорошего мануала :cry пользуюсь манулом от масма, а там написано:
Цитата

Usage:   IDIV   src
        Modifies flags: (AF,CF,OF,PF,SF,ZF undefined)
        Signed binary division of accumulator by source.  If source is a
        byte value, AX is divided by "src" and the quotient is stored in
        AL and the remainder in AH.  If source is a word value, DX:AX is
        divided by "src", and the quotient is stored in AL and the
        remainder in DX.

я так понимаю, что "If source is a word value, DX:AX is divided by "src", and the quotient is stored in AL and the  remainder in DX." должно мне говорить что-то про DX, но я не понимаю этой фразы... smile  



--------------------
user posted image
PM WWW ICQ Skype   Вверх
ehg
Дата 7.11.2007, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет, сам еще только познаю асм, но кажется смысл вот в чем :

Если операнд команды idiv одно байтовое число, то делимое берется из AX. Результат: Частное в AL, остаток в AH.
Если операнд команды idiv двух байтовое число, то делимое берется из DX(старшая часть):AX(младшая часть). Результат: частное в AX, остаток в DX.

У тебя как раз двухбайтовый операнд, так что следи за тем что в DX ;)
PM MAIL   Вверх
Mikl_
Дата 12.11.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



FelikZ
№1
дано a=-198d=FF3Ah, b=22d=16h, c=9d=9h
a/c+b=? у а указан знак - значит деление знаковое
-198/9+22=-22+22=0
№2
a/b+b/c
a=0258h, b=FEB9h, c=000Ch
у b знак не указан - значит деление беззнаковое
Код

;numero uno
mov ax,-198
mov bl,22 
idiv bl
add al,9
;numero duo
mov ax,258h
cwd
mov bx,0FEB9h 
mov cx,bx
div bx
xchg ax,cx
xor dx,dx
mov si,0Ch
div si
add ax,cx


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

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

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


 




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


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

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