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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2013, 15:13   #11
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

читайте внимательние: для всех вызовов из сторонних длл. Т.е. предполагается честная подгрузка нужного функционала runtime. Понятно что если есть сторонние obj-файлы и/или либы, можно отказаться от подгрузки runtime и заставить компилятор включить необходимый сторонний код в итоговый екзешник, тогда jump-table действительно не нужен.
f.hump вне форума Ответить с цитированием
Старый 12.03.2013, 15:19   #12
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

f.hump
Попробовали собрать готовый ЕХЕ? Есть там "лишние джампы"? И какой runtime в приложении, которое только лишь выводит мессаджбокс и закрывается? Ветка-то посвящена низкоуровневому программированию и программированию на ассемблере...

Последний раз редактировалось Mikl___; 12.03.2013 в 15:25.
Mikl___ вне форума Ответить с цитированием
Старый 12.03.2013, 16:06   #13
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Mikl___, проверил.

Код:
.686P
.model flat,stdcall
option casemap:none

extern MessageBoxW@16:proc

;include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
include \masm32\macros\du.mac
include \masm32\include\windows.inc

.data
du string,'ABC'

.code
start proc
int 3
mov eax,offset string
xor ebx,ebx
push ebx
push ebx
push eax
push ebx
call MessageBoxW@16
ret
start endp
end start
 



CPU Disasm
Address   Hex dump          Command                                  Comments
00401001  |.  B8 00304000   MOV EAX,OFFSET 00403000                  ; UNICODE "ABC"
00401006  |.  33DB          XOR EBX,EBX
00401008  |.  53            PUSH EBX                                 ; /Type => MB_OK|MB_DEFBUTTON1|MB_APPLMODAL
00401009  |.  53            PUSH EBX                                 ; |Caption => NULL
0040100A  |.  50            PUSH EAX                                 ; |Text => "ABC"
0040100B  |.  53            PUSH EBX                                 ; |hOwner => NULL
0040100C  |.  E8 01000000   CALL <JMP.&user32.MessageBoxW>           ; \USER32.MessageBoxW
00401011  \.  C3            RETN
00401012   $- FF25 00204000 JMP DWORD PTR DS:[<&user32.MessageBoxW>]
vadimych вне форума Ответить с цитированием
Старый 12.03.2013, 17:26   #14
f.hump
C/C++, Asm
Участник клуба
 
Аватар для f.hump
 
Регистрация: 02.03.2010
Сообщений: 1,323
По умолчанию

мда. херня какая-то, на один jump больше. и нах такое нужно?
f.hump вне форума Ответить с цитированием
Старый 12.03.2013, 20:13   #15
Klod
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 42
По умолчанию

PHP код:
extern _imp__MessageBoxA@16:dword
extern _imp__ExitProcess
@4:dword 
очень интересно. Видел такой способ объявления функций (но они были в инках).
То есть чтобы не захламлять код лишним объёмом, придется захламлять сам код, когда можно было сложить объявления в лишние инки?
Klod вне форума Ответить с цитированием
Старый 12.03.2013, 20:58   #16
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще это не в использовании инка дело, а в его содержимом поидее.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.03.2013, 00:17   #17
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Инклуд файла в масме ведь просто вставляет содержимое этого файла в листинг, разве нет ?
И да, когда-то на васме я видел набор инклудов, при использовании которых лишние джампы не генерируются
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4

Последний раз редактировалось Goodwin98; 13.03.2013 в 00:20.
Goodwin98 вне форума Ответить с цитированием
Старый 13.03.2013, 04:16   #18
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

vadimych,
для ms link нужно
extern _imp__MessageBoxW@16: dword
Mikl___ вне форума Ответить с цитированием
Старый 13.03.2013, 05:31   #19
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
вообще это не в использовании инка дело, а в его содержимом поидее
Цитата:
Инклуд файла в масме ведь просто вставляет содержимое этого файла в листинг
Об этом я и писал... МС компиль С++ делает абсолютно тоже.

Цитата:
для ms link нужно
Для новых версий можно (даже желательно) extern _MessageBoxW@16word
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 13.03.2013, 07:15   #20
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Mikl___, у меня либы win7. Там нет никаких _imp_. Вы заподозрили меня в подлоге?
Вероятно, я ошибаюсь, но если есть импорт, то будут и jmp`ы.

Последний раз редактировалось vadimych; 13.03.2013 в 07:19.
vadimych вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Грамотное завершение потока, если поток на паузе winhttp Общие вопросы .NET 3 11.01.2013 12:55
Категории фильмов, грамотное проектирование БД Abuhamed PHP 3 13.01.2012 09:22
Использование файлов ресурсов Mixim Общие вопросы .NET 4 13.01.2011 03:39
Грамотное юзабилити(интерфейс для пользователя) Alexei91 Свободное общение 35 16.09.2010 13:46
Использование строк и файлов Allysia Помощь студентам 2 23.02.2010 09:10