1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Объединение exe программ

Тема в разделе "WASM.BEGINNERS", создана пользователем Mountaineer, 28 ноя 2010.

  1. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
    Когда запускаю glue.exe выходит отчет об ошибке
    http://s59.radikal.ru/i166/1011/67/c6c2a676dce5.jpg
    Извините что заставил вас ждать, пытался сфотографировать экран.
     
  2. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
  3. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.540
    Адрес:
    Poland
    У тебя все так как в посте #24?
    в папке с:\123\ есть файлы
    -file1.exe
    -file2.exe
    -glue.asm

    Запускаешь C:\masm32\qeditor.exe - запускаешь
    Открываешь в ней твой файл glue.asm
    Код (Text):
    1. .586
    2. .model flat, stdcall
    3. option casemap :none
    4. include \masm32\include\windows.inc
    5. include \masm32\include\masm32.inc
    6. include \masm32\include\kernel32.inc
    7. include \masm32\include\ws2_32.inc
    8. include \masm32\include\user32.inc
    9. includelib \masm32\lib\masm32.lib
    10. includelib \masm32\lib\kernel32.lib
    11. includelib \masm32\lib\ws2_32.lib
    12. includelib \masm32\lib\user32.lib
    13.  
    14.  
    15. .data
    16. szFile1            db 'file1.exe',0
    17. szFile2            db 'file2.exe',0
    18. szResult        db 'result.exe',0
    19.  
    20. .code
    21. start proc
    22. LOCAL lhFile1, lhFile2, lhResult: DWORD
    23. LOCAL lsFile1, lsFile2, lsResult: DWORD
    24. LOCAL lmFile1, lmFile2, lmResult: DWORD
    25. LOCAL leFile1, leFile2, leResult: DWORD
    26. LOCAL Tmp: DWORD
    27.  
    28.  
    29.     invoke CreateFile,addr szFile1,GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0
    30.     mov lhFile1,eax
    31.     invoke GetFileSize,lhFile1,0
    32.     mov lsFile1,eax
    33.     invoke GlobalAlloc,GMEM_FIXED,lsFile1
    34.     mov lmFile1,eax
    35.     add eax,lsFile1
    36.     mov leFile1,eax
    37.     invoke ReadFile,lhFile1,lmFile1,lsFile1,addr Tmp,0
    38.  
    39.     ;hlt
    40.     invoke CreateFile,addr szFile2,GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,0,OPEN_EXISTING,0,0
    41.     mov lhFile2,eax
    42.     invoke GetFileSize,lhFile2,0
    43.     mov lsFile2,eax
    44.     invoke GlobalAlloc,GMEM_FIXED,lsFile2
    45.     mov lmFile2,eax
    46.     add eax,lsFile2
    47.     mov leFile2,eax
    48.     invoke ReadFile,lhFile2,lmFile2,lsFile2,addr Tmp,0
    49.    
    50.     ;retn
    51.     invoke CreateFile,addr szResult,GENERIC_WRITE,0,0,CREATE_NEW,0,0
    52.     mov lhResult,eax
    53.     mov eax,lsFile1
    54.     add eax,lsFile2
    55.     mov lsResult,eax
    56.     add eax,lmResult
    57.     mov leResult,eax
    58.     invoke GlobalAlloc,GMEM_FIXED,lsResult
    59.     mov lmResult,eax
    60.    
    61.     mov esi,lmFile1
    62.     mov edi,lmFile2
    63.     mov ebx,lmResult
    64.    
    65. next:
    66.     cmp esi,leFile1
    67.     jae @F
    68.     mov al,[esi]
    69.     mov [ebx],al
    70.     inc ebx
    71.     inc esi
    72.  
    73. @@:    cmp edi,leFile2
    74.     ja @F
    75.     mov al,[edi]
    76.     mov [ebx],al
    77.     inc ebx
    78.     inc edi
    79.    
    80. @@:    cmp ebx,leResult
    81.     jb next
    82.    
    83.     invoke WriteFile,lhResult,lmResult,lsResult,addr Tmp,0
    84.     invoke GlobalFree,lmFile1
    85.     invoke GlobalFree,lmFile2
    86.     invoke GlobalFree,lmResult
    87.     invoke CloseHandle,lhFile1
    88.     invoke CloseHandle,lhFile2
    89.     invoke CloseHandle,lhResult
    90.     invoke ExitProcess,0
    91.     ret
    92. start endp
    93. end start
    Собираешь glue.exe

    Получилось?

    А да. На c:\ есть папка masm32?
     
  4. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
    Дааа!!!

    А что вы сделали?
     
  5. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.540
    Адрес:
    Poland
    Ну ты точно что-то Важное забыл в #24!!!

     
  6. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    353
    Адрес:
    Over the hills and far away...
    мда....добрый сегодня васм однако....
     
  7. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
    InsidE
    В смысле?
     
  8. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
    Спасибо всем.
    А почему result.exe нельзя запускать?
     
  9. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.540
    Адрес:
    Poland
    InsidE
    Каждый год 1 000 000 вымирает, нужно же хоть что-то делать?
    ))
     
  10. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.540
    Адрес:
    Poland
    А ты дружище этого в тех. задании не требовал :) Серьезно.
    Все - я спать!
    Давай пока.
     
  11. InsidE

    InsidE Member

    Публикаций:
    0
    Регистрация:
    28 май 2009
    Сообщения:
    353
    Адрес:
    Over the hills and far away...
    _sheva740
    Код (Text):
    1. Каждый год 1 000 000 вымирает, нужно же хоть что-то делать?
    соседка? ;)
     
  12. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
    _sheva740
    Завтра тут будите?
     
  13. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.540
    Адрес:
    Poland
    InsidE
    Патриотизм!!!
    )))
    Mountaineer
    Что?! Опять ?!!!
    Буду, не обижайся )))
    Тебе все Msoft сделал! Ему хоть спасибо скажи!
     
  14. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
    Спасибо MSoft _sheva740 max7C4 и всем всем всем кто мне помогал!!!
    Поможите ли вы мне разобраться в этом, а то как то нехорошо выглядит если не пойму программу, не зря же вы делали мне программу.
     
  15. _sheva740

    _sheva740 New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    1.540
    Адрес:
    Poland
    Ну посмотрим, как оно пойдет)
    Пока
     
  16. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    да я сам в шоке :)
     
  17. Mountaineer

    Mountaineer New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2010
    Сообщения:
    125
    MSoft
    Персональное спасибо!
     
  18. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    Mountaineer
    а простой метод "спросить у препода, как оно должно работать" уже не котируется?
     
  19. KondraT

    KondraT Member

    Публикаций:
    0
    Регистрация:
    22 янв 2006
    Сообщения:
    175
    та не за что
     
  20. dr_godsl

    dr_godsl New Member

    Публикаций:
    0
    Регистрация:
    13 дек 2009
    Сообщения:
    60