Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2012, 04:35   #1
dura4ok90
Новичок
Джуниор
 
Регистрация: 20.02.2012
Сообщений: 1
По умолчанию Задача на ассемблере, под debug

Задача произвести умножение двух 2байтных чисел со знаком командой MUL( я не ошибся, именно MUL)
В ассемблере нуб нубом.
вот код который написал:
Код:
xor dx, dx
mov ax, [200]
mov bx, [210]
and ax, ax
jns m1
neg ax
neg bx
m1:and bx, bx
jns m2
dec dx
m2:mul bx
mov [220], ax
mov [222], dx
done
беда с расширителем DX как его заполнить еденицами(в случае отрицательного значения одного из слогаемых) таким оброзом что бы после выполнения команды MUL он коректно отображал знак...

наверное пост выше выглядет полным бредом, вобщем нужны примеры выполнения умножения чисел со знаком командой MUL. Можно алгоритм действий обрисовать, а то не знаю с какого боку подлезть.

Последний раз редактировалось Stilet; 20.02.2012 в 08:06.
dura4ok90 вне форума Ответить с цитированием
Старый 20.02.2012, 06:58   #2
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

самое простое и понятное решение в вашем случае - умножение модулей числа и присвоение знака потом в коде это будет выглядеть так:
Код:
xor dx, dx
mov ax, [200]
mov bx, [210]

test ax,8000h 
jz m1 ; если нет знака в ax, то переход
neg ax ;меняем знак в ax
inc dl
m1:
test bx, 8000h
jns m2 ; если нет знака в bx, то переход
neg bx ;меняем знак в bx
inc dl
m2:
mul bx
test dl,1
jz result
neg ax
result:
mov [220], ax
mov [222], dx
done
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 20.02.2012, 09:29   #3
alexey2
Пользователь
 
Регистрация: 27.01.2012
Сообщений: 37
По умолчанию

умножение со знаком... это же imul !
alexey2 вне форума Ответить с цитированием
Старый 20.02.2012, 10:16   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Цитата:
умножение со знаком... это же imul !
по-моему, в условии данный момент был оговорен:
Цитата:
я не ошибся, именно MUL
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с графикой на ассемблере под DOS AsmBeginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 31 11.12.2015 23:19
Отладчик DEBUG и программы в ассемблере Яшунька Помощь студентам 0 21.11.2011 11:01
задача в debug.exe DEFOX Помощь студентам 1 05.11.2011 20:47
Задача с использованием debug. ipiqi Помощь студентам 2 22.01.2011 15:18