day & night

MASM32, Проблема с компиляцией
Дата обновления: , перейти к новому сообщению
#1
Leon4V



Unregistered














Только-только начал изучать ассемблер, вот, сразу же столкнулся с такой проблемой: при компановке у меня появляется такое предупреждение
warning A4023: /coff switch, leading underscore required for start address : begin

Но, всё равно, файл *.obj создается. Зато при линковании уже появляется не предупреждение, а ошибка:
fatal error LNK1190: invalid fixup found, type 0x0001

Поискал такие ошибки в поисковике, вроде такие вопросы ранше задавались людьми, но никто ничего конкретного не ответил, лишь ссылки на faq-и давали, документации и т.д.

Если нужно, вот код компилируемой программы, но пробовал и другие подобные:
QUOTE
CSEG segment
org 100h

Begin:

mov ah,9
mov dx,offset Message
int 21h

int 20h

Message db 'Hello, world!$'

CSEG ends
end Begin


компилировал в командной строке такими командами
c:\masm32\bin\ml /c /coff 1.asm
c:\masm32\bin\link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib 1.obj


Обидно, только начал, а уже застопорился из-за этого. Если кому известно, как исправить, подскажите, если не сложно.
Go topGo end

Ответов(10 - 11)
20.05.2006 - 3:44
#11
Leon4V



Unregistered














Ребяяятаааа, огромнейшее вам спасибо!!! Не поверите, как я рад, что после стольких мучений, и, наконец, с вашей помощью всё получилось. Наконец-то начну изучать асм, благодаря вам!!!

ОГРОМНОЕ ВАМ СПАСИБО!!!
Go topGo end
24.05.2006 - 9:54
#12
ZaHack



Большой Брат
Group Icon

Группа: Заблокированные
Сообщений: 1.252
Регистрация: 24.01.2006
Из: Where The Eagles Fly
Пользователь №: 333


Респектов: 117
-----X----




Leon4V, во-первых, чтобы поблагодарить есть кнопочка Thanks smile.gif Во-вторых, я сделал тут Hello world для win32:

.586P
.Model flat, stdcall
STD_OUTPUT_HANDLE equ -11
EXTERN GetStdHandle@4:NEAR
EXTERN WriteConsole@20:NEAR
EXTERN ExitProcess@4:NEAR
includelib c:\masm32\lib\user32.lib
includelib c:\masm32\lib\kernel32.lib
_DATA SEGMENT
STR1 DB "Console application", 0
LENS DD ?
RES DD ?
_DATA ENDS
_TEXT SEGMENT
START:
PUSH STD_OUTPUT_HANDLE
CALL GetStdHandle@4
Push OFFSET STR1
call LENSTR
push offset RES
push offset LENS
push ebx
push offset STR1
push eax
call WriteConsole@20
push 0
call ExitProcess@4
LENSTR PROC
push ebp
mov ebp,esp
push eax
push edi
cld
mov edi,dword ptr [ebp+08]
mov ebx, edi
mov ecx, 100
xor al,al
repne scasb
sub edi, ebx
mov ebx, edi
dec ebx
pop edi
pop eax
pop ebp
ret 4
LENSTR ENDP
_TEXT ENDS
END START

Вот, примерно так wink.gif
User is offline
Go topGo end

Topic Options
Сейчас: 10.05.2024 - 22:06
Мобильная версия | Lite версия