Посл.ответ |
Сообщение |
Ранг: 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 для Винды.
| Сообщение посчитали полезным: |