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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2014, 17:18   #1
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
Вопрос Умножение чисел :(

Помогите, пожалуйста, только начал изучать asm, сумма чисел работает )
Код:
section .data
msg: db 'result=%d',15,10
x: dd 123
y: dd 321
extern exit
extern printf
global main
section .text
main:
 mov eax, [x]
 mov ebx, [y]
 add eax,ebx
 push eax
 push msg
 call printf
 push 0
 call exit
никак не могу разобраться с умножением, вроде есть простая функция mul, но mul eax,ebx компилятору не нравится. Объясните, почему?

Спасибо.

p.s. в инете искал, рабочие коды были, но выглядит иначе, пытаюсь понять на своем примере
with love ^.^
jihot вне форума Ответить с цитированием
Старый 18.02.2014, 18:45   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
но mul eax,ebx компилятору не нравится. Объясните, почему?
Потому что нет такой инструкции.

http://asmworld.ru/spravochnik-komand/mul/
http://en.wikibooks.org/wiki/X86_Assembly/Arithmetic
p51x вне форума Ответить с цитированием
Старый 18.02.2014, 18:59   #3
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Спасибо,
так же нашел
Код:
mul src
Multiply eax and src as unsigned integers, and put the result in eax.  High 32 bits of product go into eax.
mul ebx #Multiply eax by ebx
Т.е вызов mul ebx должен в ebx поместить произведение eax на ebx? Но результат корявый немного)
Код:
..
 mov eax, [x]
 mov ebx, [y]
 mul ebx
 push ebx
 push msg
..
with love ^.^
jihot вне форума Ответить с цитированием
Старый 18.02.2014, 19:10   #4
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Цитата:
Сообщение от jihot Посмотреть сообщение
Спасибо,
так же нашел
Код:
mul src
Multiply eax and src as unsigned integers, and put the result in eax.  High 32 bits of product go into eax.
mul ebx #Multiply eax by ebx
Т.е вызов mul ebx должен в ebx поместить произведение eax на ebx? Но результат корявый немного)
Код:
..
 mov eax, [x]
 mov ebx, [y]
 mul ebx
 push ebx
 push msg
..
mul - без учета знака.

http://www.kolasc.net.ru/cdo/program...mbler/mul.html

imul - с учетом http://www.kolasc.net.ru/cdo/program...bler/imul.html
Malriser вне форума Ответить с цитированием
Старый 18.02.2014, 19:16   #5
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

да без разницы какой знак, x и y просто заданы как 123 и 321 (
with love ^.^
jihot вне форума Ответить с цитированием
Старый 18.02.2014, 19:42   #6
jihot
Начинающий кодер
Пользователь
 
Аватар для jihot
 
Регистрация: 26.01.2010
Сообщений: 72
По умолчанию

Код:
main:
 mov eax, [x]
 mov ebx, [y]
 imul eax,ebx
 push eax
 push msg
 call printf
Спасибо, однако заработало, но чисто из-за iMUL. в чем проблема с mul так и не понял..
with love ^.^
jihot вне форума Ответить с цитированием
Старый 19.02.2014, 11:27   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от jihot Посмотреть сообщение
Код:
main:
 mov eax, [x]
 mov ebx, [y]
 imul eax,ebx
 push eax
 push msg
 call printf
Спасибо, однако заработало, но чисто из-за iMUL. в чем проблема с mul так и не понял..
32-битный mul кладет результат в edx:eax.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножение больших чисел Relrin Помощь студентам 13 22.10.2010 20:44
Умножение огромных чисел Pedro Помощь студентам 3 19.04.2009 21:32
Умножение длинных чисел SeRhy Помощь студентам 1 28.11.2008 20:04
умножение 16-разрядных чисел deeeman Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 12.12.2007 13:26