![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 26
|
![]()
Уже читал, мало что понял. Но часто то что не догоняю сразу по прошествии времени вдруг начинает пониматься. Сейчас перечитать попробую. Спасибо.
Меня постоянно преследуют умные мысли, но я быстрее!
|
![]() |
![]() |
![]() |
#12 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Полный 30h,
Код:
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 26
|
![]()
А чтоб ей не работать sub rsp,8 + возврат из call = 16
Меня постоянно преследуют умные мысли, но я быстрее!
|
![]() |
![]() |
![]() |
#14 | |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Полный 30h,
еще два рабочих варианта
Цитата:
![]() |
|
![]() |
![]() |
![]() |
#15 | |
Пользователь
Регистрация: 10.12.2011
Сообщений: 26
|
![]() Цитата:
1. push rax эквивалент sub rsp,8 что с call (ещё один sub rsp,8) даёт в сумме смещение rsp на 16 2. enter 0,0 даёт push rbp которое по сути всё то же sub rsp,8 т.е. в принципе любая хуерга перед функцией колбасящая стек на кратность 8 дает нам возможность корректно войти в функцию. Мне вот в свою очередь непонятны некоторые твои моменты 1. xor ecx,ecx mov r9d,ecx mov edx,msgBoxText mov r8d,msgBoxCaption почему такая разнопёрка с регистрами, понятно что майкрософт функции передрал на голубом глазу с 32 битных, однако чисто гепотетически те же данные msgBoxText, msgBoxCaption могут лежать на адресах за 4 Гб и тогда код начнёт бажить на ровном месте. 2. Непонятно за каким интересом вставлена команда retn она же по сути ни чем не предварена что бы корректно отработать, вернет же черти куда. Равно как и отсутствие выделение стека под функции переданные через регистры. Как я понял это будущий туториал и всё должно быть по канонам. У меня вот как бы только так заработало с retn Код:
xor rcx,rcx mov r9,rcx всё через xor разве не красивше?
Меня постоянно преследуют умные мысли, но я быстрее!
Последний раз редактировалось Полный 30h; 23.12.2014 в 12:58. |
|
![]() |
![]() |
![]() |
#16 | |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Полный 30h,
поясняю, при работе с младшей частью 64-разрядного будет происходить знаковое расширение 32-разрядной младшей части на весь 64-разрядный регистр Код:
Код:
Цитата:
Последний раз редактировалось Mikl___; 23.12.2014 в 17:02. |
|
![]() |
![]() |
![]() |
#17 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
![]() Код:
|
![]() |
![]() |
![]() |
#18 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]()
Somebody,
две этих инструкции можно разделить mov rdx,msgBoxText/mov r8,msgBoxCaption да и задачи вывода мессаджбокса с оптимизацией по скорости изначально не стояло ![]() |
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 10.12.2011
Сообщений: 26
|
![]()
Даже не знаю, каким образом retn поместит из TerminateProcess, если верить интернетам она выколупывает из стека адрес возврата из ПП. У меня после нажатия кнопки Ок и схлопывания окна программа висит в процессах неприлично долго. Что до заморочек с 32 битными регистрами с целью экономии пары байт, то на мой взгляд овчинка выделки не стоит. Когда ресурсы компьютера исчисляются гигабайтами выигрыш в размере выглядит не таким большим плюсом по сравнением с растущей вероятностью допустить в коде какую либо ошибку с обрезанием половины переменной или адреса.
Меня постоянно преследуют умные мысли, но я быстрее!
|
![]() |
![]() |
![]() |
#20 | ||
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi: аппроксимация функций методом базиса из финитных функций | Denna | Помощь студентам | 1 | 12.03.2012 19:23 |
Лицензионное соглашение Photoshop CS4 | VistaSV30 | Софт | 5 | 13.12.2009 10:21 |
Соглашение о кодировании .NET | SunKnight | Общие вопросы .NET | 3 | 08.11.2009 19:01 |
Лицензионное соглашение... | Jupiter | Свободное общение | 18 | 03.05.2009 10:39 |
использование функций в качестве параметров других функций | mono | Помощь студентам | 0 | 20.04.2009 18:25 |