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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2013, 07:18   #21
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

vadimych,
если win7 не 64-разрядная можешь сбросить на мой почтовый ящик ml, link, rc и dll-ки которые к ним относятся?
Mikl___ вне форума Ответить с цитированием
Старый 13.03.2013, 07:20   #22
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Сделаю. Запакую всю папку bin. Либы нужны?
vadimych вне форума Ответить с цитированием
Старый 13.03.2013, 07:22   #23
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

конечно... Нет не заподозрил, но у меня под ХР это работает, да и импорт можно подсократить, я показывал как, а иногда можно обходится и без импорта, используя int 2Eh

Последний раз редактировалось Mikl___; 13.03.2013 в 07:26.
Mikl___ вне форума Ответить с цитированием
Старый 13.03.2013, 07:27   #24
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Mikl___, отправил.
Кстати, и в либах для других версий винды нет декорации _imp_.
Посмотрел в в winhex, оказывается, есть и с __imp_, и без неё.

Последний раз редактировалось vadimych; 13.03.2013 в 07:47.
vadimych вне форума Ответить с цитированием
Старый 13.03.2013, 08:37   #25
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Цитата:
Посмотрел в в winhex, оказывается, есть и с __imp_, и без неё.
Прочитайте мой пост. Это особенность новых компиляторов там теперь с _, а с _имп__ осталось для совместимости.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Старый 13.03.2013, 08:54   #26
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Ezhik Kihze, прочитал Ваш пост. Спасибо.
vadimych вне форума Ответить с цитированием
Старый 13.03.2013, 20:57   #27
Klod
Пользователь
 
Регистрация: 09.02.2012
Сообщений: 42
По умолчанию

Как лучше объявлять функции?
я пробую
PHP код:
.486
.model flatstdcall
option casemap
none

includelib 
\masm32\lib\kernel32.lib  тут где надо поставлен обратный слеш
includelib 
\masm32\lib\user32.lib    только на форуме он не отображается(
extrn _MessageBoA@16:DWORD
extrn _ExitProcess
@4:DWORD

.data
Ttl db 
"Progra",0h
mes db 
"Hgfgh",0h

.code
start
:
invoke MessageBoxA0addr mesaddr Ttl0
invoke ExitProcess
0
end start 
Выдаёт ошибку
Цитата:
Assembling: programm.asm
programm.asm(20) : error A2006: undefined symbol : MessageBoxA@16
programm.asm(21) : error A2006: undefined symbol : ExitProcess@4
Klod вне форума Ответить с цитированием
Старый 14.03.2013, 03:57   #28
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Klod,
нужно писать
Код:
.code 
start: push 0
         push offset Ttl
         push offset mes
         push 0
         call _MessageBoxA@16
         push 0
         call _ExitProcess@4
end start
vadimych,
с теми ml и link, что вы прислали ехе-файл собирается без лишних джампов
Код:
.00400230: 6A00		push 000
.00400232: 6845024000   push 000400245 ;"Iczelion's tutorial #2",0
.00400237: 685C024000   push 00040025C ;"Win32 Assembly is Great!"
.0040023C: 6A00		push 000
.0040023E: FF1580024000 call MessageBoxA ;user32
.00400244: C3		retn
.00400245: 49637A656C696F6E2773207475...;"Iczelion's tutorial #2",0
проблема скорее всего в lib-файлах. Я использую либы из masm32 11 версии, не могли бы вы прислать свой user32.lib?
На всякий случай добавляю бат-файл, которым всё собирается
Код:
cls
set filename=msgbox
if exist %filename%.exe del %filename%.exe
ml /c /Cp /Gz /coff %filename%.asm
link /SUBSYSTEM:WINDOWS /section:.text,w /ALIGN:16 %filename%.obj
del %filename%.obj

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

Mikl___, значит, всё-таки не все файлы Вам дошли.
Вложения
Тип файла: rar user32.rar (22.3 Кб, 7 просмотров)
vadimych вне форума Ответить с цитированием
Старый 14.03.2013, 08:19   #30
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Mikl___, не знаю, в .lib файлах дело, или нет, но такую как у Вас картину вызова функции я увидел только в екзешнике с самодельным импортом.

Код:
CPU Disasm
Address   Hex dump             Command                                  Comments
004000B4  /.  33DB             XOR EBX,EBX
004000B6  |.  53               PUSH EBX                                 ; /Type => MB_OK|MB_DEFBUTTON1|MB_APPLMODAL
004000B7  |.  68 CE004000      PUSH 004000CE                            ; |Caption = "ABC"
004000BC  |.  68 CA004000      PUSH 004000CA                            ; |Text = "DEF"
004000C1  |.  53               PUSH EBX                                 ; |hOwner => NULL
004000C2  |.  CC               INT3                                     ; |
004000C3  |.  FF15 FC004000    CALL DWORD PTR DS:[<&user32.MessageBoxA> ; \USER32.MessageBoxA
004000C9  \.  C3               RETN
004000CA   .  44 45 46 00      ASCII "DEF",0                            ; ASCII "DEF"
004000CE   .  41 42 43 00      ASCII "ABC",0                            ; ASCII "ABC"
004000D2      8BFF             MOV EDI,EDI
004000D4   .  00000000         DD 00000000                              ; Struct 'IMAGE_IMPORT_DESCRIPTOR'
004000D8   .  00000000         DD 00000000
004000DC   .  00000000         DD 00000000
004000E0   .  10010000         DD 00000110
004000E4   .  FC000000         DD 000000FC
004000E8   .  00000000         DD 00000000                              ; Struct 'IMAGE_IMPORT_DESCRIPTOR'
004000EC   .  00000000         DD 00000000
004000F0   .  00000000         DD 00000000
004000F4   .  00000000         DD 00000000
004000F8   .  00000000         DD 00000000
004000FC   .  11EA2077         DD 7720EA11
00400100   .  00000000         DD 00000000
00400104   .  4D 65 73 73 61 6 ASCII "MessageBoxA",0                    ; ASCII "MessageBoxA"
00400110   .  75 73 65 72 33 3 ASCII "user32.dll",0                     ; ASCII "user32.dll"
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