![]() |
|
|
![]()
|
|
| Анютка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 22.11.2005 Где: Моск.область Репутация: нет Всего: нет |
помогите решить,пожалуйста:найти максимум двух чисел,не используя команд условного переда
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 1 Всего: 454 |
а как заданы операнды? на регистрах (каких)? в памяти (где, какого размера)?
куда надо вернуть результат? например:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| sgi1981 |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 2 Всего: 10 |
Вообще, если операнды являются беззнаковыми байтами, знаковыми двухбайтными словами, или вещественными числами короткого формата (4 байта), то реализовать код очень просто с помощью MMX - инструкций.
Но он будет работать на процессорах не ниже Pentium III Максимальное значение для целочисленных операндов - двухбайтных знаковых слов заданных в регистрах ax, dx. Комментарии - чтобы было понятно. Внимание - работает только на процах не ниже Pentium III.
Минимальное значение для целочисленных операндов - двухбайтных знаковых слов заданных в регистрах ax, dx. Комментарии - чтобы было понятно. Внимание - работает только на процах не ниже Pentium III.
Максимальное значение для целочисленных операндов - беззнаковых байтов заданных в регистрах al, dl. Комментарии - чтобы было понятно. Внимание - работает только на процах не ниже Pentium III.
Минимальное значение для целочисленных операндов - беззнаковых байтов заданных в регистрах al, dl. Комментарии - чтобы было понятно. Внимание - работает только на процах не ниже Pentium III.
А теперь подпрограмма возврата максимального вещественного числа короткого формата. Внимание ! Эта подпрограмма выполняется только на процессорах не ниже Pentium III. Исходные операнды - вещественные числа короткого формата, расположениы в сегменте стека Результат возвращается в регистре st(0) сопроцессора. Подпрограмма ближнего вызова.
И для возврата минимального значения соответственно. Комментарии выше... Внимание ! Эта подпрограмма выполняется только на процессорах не ниже Pentium III.
-------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
||||||||||||
|
|||||||||||||
| sgi1981 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 2 Всего: 10 |
Да, и ещё хочу напомнить.
Если ваш компилятор не распознает MMX или XMM команды, то их можно писать в машинном коде. Коды команд emms 00001111 : 01110111 pextrw r32, xmm, i8 00001111 : 11000101 : 11 mmx r32 : i8 pinsrw xmm, r32/m16, i8 00001111 : 11000100 : mod reg r/m : i8 pmaxub mmx, mmx/m64 00001111 : 11011110 : mod mmx r/m pmaxsw mmx, mmx/m64 00001111 : 11101110 : mod mmx r/m pminub mmx, mmx/m64 00001111 : 11011010 : mod mmx r/m pminsw mmx, mmx/m64 00001111 : 11101010 : mod mmx r/m minss xmm, xmm/m32 11110011 : 00001111 : 01011101 : mod xmm r/m maxss xmm, xmm/m32 11110011 : 00001111 : 01011111 : mod xmm r/m movss xmm, xmm/m32 11110011 : 00001111 : 00010000 : mod xmm r/m movss xmm/m32, xmm 11110011 : 00001111 : 00010001 : mod xmm r/m Операнд mmx в названии команды - MMX-регистр или XMM-регистр в зависимости от типа команды. Поле mmx в коде команды - трехбитное число означающее номер используемого регистра Поле r/m - трехбитное поле режима адресации операнда в памяти или номер второго регистра при использовании в качестве операндов двух регистров (в этом случае двухбайтное поле mod равно 11). Поле mod вместе с r/m - задает режим адресации ячейки памяти. -------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
|||
|
||||
![]()
|
| Правила форума "Asm для начинающих" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для начинающих | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |