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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2012, 15:17   #1
Glaciuse
Пользователь
 
Регистрация: 22.05.2011
Сообщений: 44
По умолчанию Что делают эти команды?

Есть прога от интела, реализующая быстрое преобразование фурье.

В этой проге есть инструкции типа:
Код:
mov edx, 32[esp]
mov eax, 36[esp]
mov ebp, 44[esp]
mov ebx, 52[esp]
....
mov 44[esp], eax
Что за цифра перед скобками и для чего она нужна? Спасибо.

Последний раз редактировалось Glaciuse; 21.11.2012 в 16:21.
Glaciuse вне форума Ответить с цитированием
Старый 21.11.2012, 16:23   #2
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

как ни странно, это все мувы, цифра впереди - смещение относительно базы (esp), для интелловского компилятора.

кстати, прога которой уже 17 лет - не самый лучший выбор, на мой взгляд.

Последний раз редактировалось f.hump; 21.11.2012 в 16:29.
f.hump вне форума Ответить с цитированием
Старый 21.11.2012, 17:09   #3
Glaciuse
Пользователь
 
Регистрация: 22.05.2011
Сообщений: 44
По умолчанию

Т.е. эквивалент:
Код:
mov edx, [esp+32]
mov eax, [esp+36]
mov ebp, [esp+44]
mov ebx, [esp+52]
....
mov [esp+44], eax
?
Glaciuse вне форума Ответить с цитированием
Старый 21.11.2012, 17:37   #4
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

в общем, да.
f.hump вне форума Ответить с цитированием
Старый 22.11.2012, 04:18   #5
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,139
По умолчанию

Цитата:
Сообщение от f.hump
в общем, да.
Не в общем, а ДА без всяких условий, команду mov edx, [esp+32] можно написать так:
mov edx, [esp][32]
mov edx, [32][esp]
mov edx, 32[esp] и даже вот так mov edx, [32 + [esp]]
как написал Пильщиков В.Н. в "Программирование на языке ассемблера IBM PC".– М. :ДИАЛОГ-МИФИ, 1994.– 288 с.
Цитата:
Любое выражение можно заключить в квадратные скобки, от этого смысл не изменится, но снятие квадратных скобок может изменить смысл.
Mikl___ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi калькулятор. не могу понять что делают эти функции!!! Настюшка_11 Помощь студентам 2 26.12.2011 20:54
что делают функции CodeNOT Общие вопросы C/C++ 5 19.05.2011 15:24
что означают эти записи??? LezhiK Помощь студентам 1 19.04.2011 17:08
Обьясните что делают и означают пару строк в программном коде! FreeZeT Общие вопросы C/C++ 2 15.06.2010 03:20
Что означают эти строки? DriverSTi Помощь студентам 15 09.01.2010 13:36