Поиск:

Ответ в темуСоздание новой темы Создание опроса
> деление, незнаю как поделить 
:(
    Опции темы
fuckingniger
Дата 15.3.2011, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



знаю, что при помощи оператора div
но не понимаю как.
где должно быть делимое , как его туда перенести , где делитель, как его туда перенести. в общем ничего не получается(
На данный момент делимое в регистре dx:ax
Оно является результатом умножения числа на слово.
Делитель находится в стеке(в виде двух слов). является результатом умножения двух слов.
помогите пожалуйста
PM MAIL   Вверх
Cheloveck
Дата 15.3.2011, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

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



div  <делитель>
Если делитель
  • байт: делимое: ax, частное - al, остаток - ah
  • слово: делимое - dx (старшие биты) ax (младшие биты), частное - ax, остаток - dx
  • двойное слово: делимое - edx (старшие биты), eax (младшие биты), частное - eax, остаток - edx


Это сообщение отредактировал(а) Cheloveck - 15.3.2011, 22:02


--------------------
user posted image
PM Jabber   Вверх
fuckingniger
Дата 15.3.2011, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Cheloveck @  15.3.2011,  22:01 Найти цитируемый пост)
двойное слово: делимое - edx (старшие биты), eax (младшие биты), частное - eax, остаток - edx

как из стека туда достать данные ???они размером в слово туда запиханы.То есть 2 записи в стеке.

я так  понимаю , что делимое должно быть в 2 раза больше делителя.Как мне расширить делимое из пары ax:dx в два раза больше?
PM MAIL   Вверх
fuckingniger
Дата 16.3.2011, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



задание вообще такое:

посчитать математическое выражение

4D/((A-C)(B-1))

A B C D - слова (word)
PM MAIL   Вверх
fuckingniger
Дата 16.3.2011, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



у меня ругается на команду mozvx - говорит, что illegal comand for current processor
а также не знает регистров eax и ebx.

ассемблер для 8086 
PM MAIL   Вверх
iff
Дата 16.3.2011, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Администратор
**


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

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



1. процессор 8086 не имеет регистров eax и ebx.
2. процессор 8086 не исполняет инструкцию movzx
(используйте директиву процессора, который поддерживает эти регистры и инструкции, например 80386, директива процессора соответственно записывается как .386)

Цитата(fuckingniger @  16.3.2011,  01:34 Найти цитируемый пост)
задание вообще такое:
посчитать математическое выражение
4D/((A-C)(B-1))
A B C D - слова (word) 

Если нужно именно для 8086:
Код

a dw 10
b dw 3
c dw 4
d dw 144
resultat dw ?
...

push ax bx cx dx
mov ax, a
sub ax, c
mov bx, b
dec bx
mul bx
mov bx, ax
mov ax, d
mov cl,4
shl ax, cl
xor dx, dx
div bx
mov resultat, ax
pop dx cx bx ax

П.С. для некоторых чисел работать будет некорректно: результат (A-C)(B-1) должен не превосходить слово.

Это сообщение отредактировал(а) iff - 16.3.2011, 16:26


--------------------
DOS... Синей пеленой экран заполнил чистый DOS 
Мышь... Стала вдруг квадратной, потеряла форму мышь... 
Я разбил окно, девяностопятое мастдайное окно, 
И поставил DOS, и тогда увидел: Это счастье, — вот оно.  
PM MAIL WWW   Вверх
fuckingniger
Дата 16.3.2011, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ну я примерно так и сделал)

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

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

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


 




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


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

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