| Посл.ответ | 
Сообщение | 
 Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 18 ноября 2006 04:19   · Личное сообщение ·  #1 
извините конечно за ламерский вопрос, но я только учусь и прошу тапками не кидаца
 так вот когда я компилирую прогу на ассемблере создается файл .obj  затем я его линкую
 link /SUBSYSTEM:WINDOWS ***.obj и линковщик выдает ошибку 1190 . Вопрос как мне пролинковать без ошибок?
   | Сообщение посчитали полезным:  | 
 | 
  Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser 
 
 | 
Создано: 18 ноября 2006 06:15   · Личное сообщение ·  #2 
ну ты сказал, парень.. ты хоть объясни.. что линкуешь? библиотека это или файл исполняемый? с ресурсами или без?
 исходник приаттачь, в конце концов...
 ----- Уважайте других и пишите грамотно.  | Сообщение посчитали полезным:  | 
 Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 18 ноября 2006 07:08   · Личное сообщение ·  #3 
исполняемый файл, без ресурсов, кароч говорю ток начал изучать ассемблер по рассылке калашникова и самая первая прога оттуда не линкуется ни под каким видом вообще ни так LINK.EXE PROG.OBJ /t
 ни даж так link /SUBSYSTEM:WINDOWS prog.obj последний вариант в другом месте прочитал, не у калашникова
   | Сообщение посчитали полезным:  | 
 Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник 
 
 | 
Создано: 18 ноября 2006 07:08   · Личное сообщение ·  #4 
1190 - это ошибка fixup.  Давай  исходник - найдем ошибку. Иногда правда бывает, что ДОС-овую прогу пытаются masm32 компилить, т.ч. чем подробнее напишешь, тем лу Тчше   
  | Сообщение посчитали полезным:  | 
 Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 18 ноября 2006 08:34   · Личное сообщение ·  #5 
это и есть досовская прога типа хело ворлд  и кстати ml.exe prog.asm /AT туже самую ошибку линковки выдает, может я ваще в корне чего то не понимаю, просто за ассемблер только взялся 
 
 CSEG segment
 org 100h
 Begin:
 	mov ah,9
 	mov dx,offset Message
 	int 21h
 	int 20h
 Message db 'Hello, world!$'
 CSEG ends
 end Begin
 
  | Сообщение посчитали полезным:  | 
  Ранг: 120.9 (ветеран), 5thx Активность: 0.08↘0 Статус: Участник Programmer and reverser 
 
 | 
Создано: 18 ноября 2006 11:22   · Личное сообщение ·  #6 
ты чем компилируешь? если masm32, то ты и впрямь это не скомпилишь.
 для таких вещей надо TASM или старый MASM (пятой версии вроде).
 или поставь что-нить типа emu8086.
 ----- Уважайте других и пишите грамотно.  | Сообщение посчитали полезным:  | 
  Ранг: 279.1 (наставник) Активность: 0.16↘0 Статус: Участник wizard 
 
 | 
Создано: 18 ноября 2006 19:33   · Личное сообщение ·  #7 
Executioner пишет:
 ты чем компилируешь? если masm32, то ты и впрямь это не скомпилишь. 
 для таких вещей надо TASM или старый MASM 
Вобщем   CenturioN тебе сюда  www.kalashnikoff.ru/Assembler/prog/
 ----- Что один человек сделал , другой всегда сломать может...  | Сообщение посчитали полезным:   | 
 Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник 
 
 | 
Создано: 19 ноября 2006 00:04   · Личное сообщение ·  #8 
MACKLIA пишет:
  если masm32, то ты и впрямь это не скомпилишь 
 Просто линкер из masm32 не делает COM файлы. Нужен либо старенький MASM, либо ипользовать
  сторонний линкер   -  /Bl<linker> Use alternate linker
   | Сообщение посчитали полезным:   | 
 Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d 
 
 | 
Создано: 19 ноября 2006 02:18   · Личное сообщение ·  #9 
CenturioN пишет:
 это и есть досовская прога типа хело ворлд 
CenturioN пишет:
 link /SUBSYSTEM:WINDOWS ***.obj и линковщик выдает ошибку 1190 . Вопрос как мне пролинковать без ошибок? 
Имхо не надо досовскую прогу компилить под винды линкером.
 ----- Я медленно снимаю с неё UPX... *FF_User*  | Сообщение посчитали полезным:   | 
 Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d 
 
 | 
Создано: 19 ноября 2006 02:27 · Поправил: AlexZ   · Личное сообщение ·  #10 
.model tiny
 .code
 org 100h
 start:
 mov ah,9
 mov dx,offset Message
 int 21h
 int 20h
 Message db 'Hello, world!$'
 end start 
ml /c hello.asm
 
 .model small
 .stack 100h
 .code
 org 100h
 start:
 mov ah,9
 mov dx,offset Message
 int 21h
 int 20h
 .data
 Message db 'Hello, world!$'
 end start 
ml /c hello.asm
 link hello.obj
 Первый компилит в com, второй exe. Забудь ДОС.
 ----- Я медленно снимаю с неё UPX... *FF_User*  | Сообщение посчитали полезным:   | 
 Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 19 ноября 2006 02:38   · Личное сообщение ·  #11 
скачал tasm там почему то тоже не линкуется, может напишете вообще какие параметры передать линковщику чтоб .com файл получить, то чего у калашникова написано ваще не пашет
   | Сообщение посчитали полезным:  | 
 Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 19 ноября 2006 02:39   · Личное сообщение ·  #12 
всем спасибо забейте на мой предыдущий пост, стормозил просто
   | Сообщение посчитали полезным:  | 
 Ранг: 310.8 (мудрец), 29thx Активность: 0.43↘0 Статус: Участник 
 
 | 
Создано: 19 ноября 2006 04:19   · Личное сообщение ·  #13 
AlexZ пишет:
 Первый компилит в com, второй exe. Забудь ДОС. 
 Тот линкер, который он сначала использовал не понимает tiny и все равно выдаст fixup для small.
  Проверено на линкерах из 6 и 7-й студии.
   | Сообщение посчитали полезным:   | 
 Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 19 ноября 2006 08:25   · Личное сообщение ·  #14 
теперь такой вопрос почему при линковке следующей проги
 
 .386
       .model flat, stdcall
       option casemap :none   ; case sensitive
       include masm32includewindows.inc
       include masm32includeuser32.inc
       include masm32includekernel32.inc
       includelib masm32libuser32.lib
       includelib masm32libkernel32.lib
     .data
 	MsgBoxCaption db "It's the first your program for Win32",0
 	MsgBoxText    db "Assembler language for Windows is a fable!",0
     .code
 
 start:
 	invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
 	;invoke ExitProcess, NULL
 end start
 
выдаются такие ошибки
 1.obj : warning LNK4033: converting object format from OMF to COFF
 1.obj : error LNK2001: unresolved external symbol _MessageBoxA@16
 LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup
 1.exe : fatal error LNK1120: 2 unresolved externals
   | Сообщение посчитали полезным:  | 
 Ранг: 203.3 (наставник) Активность: 0.22↘0 Статус: Участник UPX Killer -d 
 
 | 
Создано: 19 ноября 2006 10:15   · Личное сообщение ·  #15 
CenturioN пишет:
 option casemap :none ; case sensitive  
это можешь не писать, а добавь компилеру опцию /cp
 CenturioN пишет:
 include masm32includewindows.inc
 include masm32includeuser32.inc
 include masm32includekernel32.inc
 includelib masm32libuser32.lib
 includelib masm32libkernel32.lib  
Во-первых поставь слэш где надо, во-вторых проверь пути к МАСМ или что это у тебя там.
 Масм не любит русские буквы в пути и длинные имена.
 ----- Я медленно снимаю с неё UPX... *FF_User*  | Сообщение посчитали полезным:   | 
  Ранг: 279.1 (наставник) Активность: 0.16↘0 Статус: Участник wizard 
 
 | 
Создано: 19 ноября 2006 10:32   · Личное сообщение ·  #16 
CenturioN пишет:
 теперь такой вопрос почему при линковке следующей проги ... 
Какаето у тебя переходы интересные DOS -> WIN и всё за один день
 ----- Что один человек сделал , другой всегда сломать может...  | Сообщение посчитали полезным:   | 
 Ранг: 1.0 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 19 ноября 2006 23:26   · Личное сообщение ·  #17 
уж какие есть   
просто учебник другой взял..
   | Сообщение посчитали полезным:  | 
  Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман 
 
 | 
Создано: 20 ноября 2006 00:28   · Личное сообщение ·  #18 
Ты бы лучше на www.wasm.ru шел, там люди именно этем профессионально занимаются.
 ----- Yann Tiersen best and do not fuck  | Сообщение посчитали полезным:  | 
  Ранг: 279.1 (наставник) Активность: 0.16↘0 Статус: Участник wizard 
 
 | 
Создано: 20 ноября 2006 03:43   · Личное сообщение ·  #19 
PE_Kill пишет:
 Ты бы лучше на www.wasm.ru шел, там люди именно этем профессионально занимаются 
Профессионально ,никто не спорит,только для новичка большинство статей сложноваты для понимания.
 ----- Что один человек сделал , другой всегда сломать может...  | Сообщение посчитали полезным:   | 
  Ранг: 793.4 (! !), 568thx Активность: 0.74↘0 Статус: Участник Шаман 
 
 | 
Создано: 20 ноября 2006 05:36 · Поправил: PE_Kill   · Личное сообщение ·  #20 
Там есть форум, и есть подфорум для новичков. Сам в нем иногда вопросы задаю.
 ----- Yann Tiersen best and do not fuck  | Сообщение посчитали полезным:  | 
 Ранг: 1.2 (гость) Активность: 0=0 Статус: Участник 
 
 | 
Создано: 22 ноября 2006 07:27 · Поправил: Den_Schwarz   · Личное сообщение ·  #21 
.386
 .model flat, stdcall
 option casemap:none
 include masm32includewindows.inc
 include masm32includekernel32.inc
 includelib kernel32.lib
 include masm32includeuser32.inc
 includelib user32.lib
 
 .data
 MsgCaption      db "Iczelion's tutorial no.2",0
 MsgBoxText      db "Win32 Assembly is Great!",0
 
 .code
 start:
 	invoke MessageBox, NULL,addr MsgBoxText, addr MsgCaption, MB_OK
 	invoke ExitProcess, NULL
 end start
 
Сохраняем прогу в файле msgbox.asm
 Компиляция из командной строки или .BAT-файла:
 path=c:masm32in
 ml /c /coff /Cp msgbox.asm
 link /SUBSYSTEM:WINDOWS  /LIBPATH:c:masm32lib  msgbox.obj
Это взято из туториалов Iczelion'a, они есть на wasm.ru в русском переводе. Там еще много чего есть. Хороший ресурс, я по нему изучал ASM для Винды.
   | Сообщение посчитали полезным:   |