![]() |
|
Другие темы раздела | |
Assembler Программирование на 64 битной OS Добрый день, уважаемые. Хочу переделать программу которая работала на 32 битной ОС, под 64 битную. (про приемственность версий знаю) я хочу именно узнать различия программирования под разные ОС. Пишу... https://www.cyberforum.ru/ assembler-x64/ thread1160906.html |
RegEnumKey - записать параметры в {cls-id}\key Assembler Пожалуйста, помогите сделать код... SHRegEnumUSKey Нужно записать параметры в {cls-id}\key. Более всего непонятно как забирать названия ключей после SHRegEnumUSKey. Может быть лучше использовать... |
Assembler слетает TF флаг
https://www.cyberforum.ru/ assembler-x64/ thread1090463.html win 7, система x64, приложение x32 написал дебагер который ставит бряк и затем включает TF флаг и начинает трассировку трассирует значит, трассирует, и тут я подсовываю ему код типа call far... |
Assembler Masm64 и winAPI
https://www.cyberforum.ru/ assembler-x64/ thread1026355.html Здравствуйте. даже не знаю в какую тему писать, с получившейся проблемой. Нужно написать графическое приложение на winAPI но обязательным условием является то что оно должно быть написано на... |
RegDeleteTree и WinXP x64 ? Assembler include '%fasm%/win32ax.inc' section '.code' executable start: invoke RegOpenKeyEx,HKEY_LOCAL_MACHINE,'Software\a',NULL,KEY_WOW64_64KEY+KEY_ENUMERATE_SUB_KEYS,o @@: invoke... |
Assembler Построчное чтение XML файла <item> <string name="Group" value="TransportWindow"/> <member name="Values"> <obj class="UPoint" name="Location" ID="215319288"> <int name="H"... https://www.cyberforum.ru/ assembler-x64/ thread803168.html |
Assembler Ошибка при вызове SHCopyKey
https://www.cyberforum.ru/ assembler-x64/ thread797619.html include '%fasm%/win64ax.inc' section '.code' executable start: sub rsp,8 invoke SHCopyKey,HKEY_LOCAL_MACHINE,'Software\$$',HKEY_CURRENT_USER,NULL exit: invoke... |
Assembler Ошибка при вызове MoveFileEx include '%fasm%/win64ax.inc' section '.code' executable start: invoke ExpandEnvironmentStrings,'%ProgramFiles%\EmEditor\emedshl',a,MAX_PATH invoke... |
Assembler X64 AT&T assembly
https://www.cyberforum.ru/ assembler-x64/ thread399721.html .data x_d: .string "abc" .text .globl main .type main, @function main: pushq x_d call printf ret |
Assembler Ассемблер для x64
https://www.cyberforum.ru/ assembler-x64/ thread386531.html Я установил win 7 x64 и теперь не могу ничего скомпилировать. Масмы тасмы пишут о несовместимости. Есть рабочие ассемблеры для win 7 x64?? |
SendInput как нажать ALT+SHIFT ? Assembler include '%fasm%/win64ax.inc' section '.code' executable start: sub rsp,8 mov ,$-pInputs mov ,VK_TAB+VK_MENU invoke Sleep,1000 invoke... |
Assembler Рекурсивное удаление файлов рекурсивное удаление файловinclude '%fasm%/win64ax.inc' section '.code' executable start: invoke ExpandEnvironmentStrings,'%ProgramFiles%\Videodeluxe\_msi_keyfile_*',open,MAX_PATH ... https://www.cyberforum.ru/ assembler-x64/ thread378004.html |
Ушел с форума
![]() 15888 / 7462 / 1012
Регистрация: 11.11.2010
Сообщений: 13,444
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11.06.2014, 10:38 [ТС] | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Все, что нужно знать, чтобы начать программировать для 64-разрядных версий Windows - Assembler - Ответ 630333611.06.2014, 10:38. Показов 38785. Ответов 20
Метки (Все метки)
Ответ Уменьшаем размер приложения для Win64 Простейшее приложение выводящее на экран фразу "Win64 Assembly is Great!" на диалекте MASMВ результате получаем ехе-файл в 2560 байт. При просмотре внутренностей ехе-файла программой hiew32 видно, что 90% содержимого нули. Возникает законный вопрос, а как уменьшить размер программы, но чтобы при этом не терялась ее функциональность?
при компиляции получаем сообщение LINK : warring LNK4108: /ALIGN specified without /DRIVER; image may not run размер файла msgbox.exe меняется с 2560 на 1536 байт и, не смотря, на предупреждение image may not run файл msgbox.exe благополучно запускается
msgbox.obj : fatal error LNK1164: section 0x1 alignment (16) greater then /ALIGN value похоже, что в этом направлении мы достигли предела, хотя от исходной программы в 2560 байт пришли к программе в 848 байт, а это согласитесь не плохо!Наша программа использует два сегмента, сегмент кода и сегмент данных, посмотрите внимательно через hiew32 ― между этими сегментами прослойка из нулей, от которых мы и пытаемся избавится. А помните во времена DOS'а можно было создавать COM-файлы, которые в единственном сегменте содержал и код, и стек, и данные? А нельзя ли и здесь создать, что-то подобное?
Код
set file=msgbox set path=\x64\ %path%bin\ml64 /Cp /I"%path%include" %file%.asm /link /subsystem:windows ^ /LIBPATH:"%path%lib" /ALIGN:16 /SECTION:.text,W /entry:WinMain del %file%.obj del mllink$.lnk
hiew32 показывает, что в хвосте нашего файла, сразу за строкой «kernel32.dll» целых двенадцать байтов содержащих нули. А не удалить ли их нам вручную? Код
.40000300: E2 01 4D 65 73 73 61 67 65 42 6F 78 41 00 75 73 т MessageBoxA us .40000310: 65 72 33 32 2E 64 6C 6C 00 00 BC 00 45 78 69 74 er32.dll Exit .40000320: 50 72 6F 63 65 73 73 00 6B 65 72 6E 65 6C 33 32 Process kernel32 .40000330: 2E 64 6C 6C 00 00 00 00 00 00 00 00 00 00 00 00 .dll
Код нашей программы начинается с 1F8h=504 байта. Всё, что выше ― это заголовок нашего EXE-файла ― вот бы его уменьшить! Заголовок нашего файла состоит из двух частей. От строки «MZ» до строки «PE» DOS-заголовок (DOS-stub) (0C0h=192 байта) и от строки «PE» до 21Fh PE-заголовок (352 байта). Адрес строки «PE» содержится в DOS-заголовке в двойном слове по смещению 3Ch. Начнем с уменьшения DOS-stub'а. Возьмем hiew32.exe и создадим с его помощью вот такой файл: Код
.000000: 4D 5A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 MZ .000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Код
set file=msgbox set path=\x64\ %path%bin\ml64 /Cp /I"%path%include" %file%.asm /link /subsystem:windows ^ /LIBPATH:"%path%lib" /ALIGN:16 /SECTION:.text,W /STUB:stubby.exe /entry:WinMain del %file%.obj del mllink$.lnk
to be continued
Вернуться к обсуждению: Все, что нужно знать, чтобы начать программировать для 64-разрядных версий Windows Assembler
1
|
|
11.06.2014, 10:38 | |
Готовые ответы и решения:
20
Хочу начать программировать на iOS, нужно ли знать Cи? Что необходимо для того чтобы начать программировать на Java Что надо знать в java, чтобы хорошо программировать под android?
|
11.06.2014, 10:38 | |
Помогаю со студенческими работами здесь
0
Что скачать и установить, чтобы начать программировать? Какие темы нужно знать, чтобы начать работать с DirectX Java для фриланса - что нужно знать чтобы потянуть на Junior'a? |