Автор
|
Тема: Помогите начинающему
|
bobby |
опубликован 07-12-2001 02:11 MSK
Начал изучать asm, но столкнулся с такой проблемой: ни одна программа написанная мной не компилируется, я не соблюдаю какие-то правила со стеком связанные или другие. Нашел на сайте www.assembler.ru код простейшей программы, которая даже ничего не делает, а просто начинает свою работу и заканчивает, но даже при ее компиляции в Masm501 выдал около 7! ошибок. Может у кого-нибудь есть другой вариант элементарного кода, используя который я мог бы вводить свои первые инструкции и исполнять их?
|
7in
|
опубликован 07-12-2001 23:54 MSK
Ты бы поподробнее написал: какой код, какие ошибки, какие параметры задаёшь при компилировании. |
bobby
|
опубликован 08-12-2001 16:00 MSK
Код такой:.386 .model flat,stdcall ExitProcess PROTO :DWORD .code WinMain PROC PUBLIC hinst,prev_hinst,command_line,cmd_show ;... invoke ExitProcess,0 WinMain ENDP end Честно говоря, я здесь ничего практически не понимаю(пока), но там (http://www.assembler.ru/11_arts/11000200.htm) написано, что прога заработает и без ошибок завершится, а мне оно и нужно, чтобы в середине вписывать свои мини-программки, учиться потихоньку, короче. Я раньше ведь свободно на asm-e под Z-80 писал, а недавно писюк появился и здесь все более замороченно. Если кто помнит ZX-Spectrum, он меня поймет 8). А компилирую я в Masm51 без параметров, просто >...\masm51.exe "name.asm" Спасибо за помощь. |
7in
|
опубликован 08-12-2001 21:13 MSK
Ну, во-первых, там написано, что компилируется это с помощью ML. Во-вторых, нужно подключить kernel32.lib .Мне лично кажется, что сначала нужно научиться писать проги под ДОС, а потом уже под Windows (а у тебя здесь как раз пример под Windows). Если честно, я всегда пользуюсь TASM'ом, а под Win на асме никогда не писал :) . Так что могу привести тебе пример для TASM'а... Программа COM: --------------[ Резать тут! :]--------------- .MODEL Tiny .286 .CODE ORG 100h Start: ;---- Здесь твой код ----; int 20h END Start -------------[ Кончать тут! :]--------------- Программа EXE: --------------[ Резать тут! :]--------------- .MODEL Small .286 .STACK 100h .DATA ;---- Данные ----; .CODE Start: ;---- Здесь твой код ----; mov ah,4Ch int 21h END Start -------------[ Кончать тут! :]--------------- COM компилируется так: TASM proga.asm /m9 TLINK proga.obj /x /t EXE компилируется так: TASM proga.asm /m9 TLINK proga.obj /x
|
bobby
|
опубликован 09-12-2001 14:00 MSK
Спасибо 7in. прога запускается, работает, я почти счастлив! А почти - потому что она отработав, сразу захлопывает окошко и о результатах работы можно только догадываться. Кстати, компилится она в Tasm-e без проблем, а вот Microsoft Assembler сообщил, что мол "operand expected", ну да и хрен с ним, все равно Борман симпатичнее мне. |
7in
|
опубликован 09-12-2001 23:43 MSK
Не знаю, почему захлопывается :( |
rivitna
|
опубликован 17-12-2001 01:01 MSK
У меня есть типовые заготовки на асме, на основе которых я пишу программки следующих форматов: COM, MZ EXE, NE, PEМогу на почту скинуть для изучения |
Gibbel
|
опубликован 18-12-2001 15:29 MSK
А окошко схлопывается из-за настроек виндов...У меня есть кое-что интересное на асме, если надо - скину, только для начала разберись в нем получше... Сам помню, как с Zilogа перелазил... З.Ы. Z80 is cool |
isFish
|
опубликован 22-12-2001 17:57 MSK
Тоже парился после Z80, но есть пара класных книг Ассемблер -язык без границ (www.dmk.ru) ну и Питер Абель тебе поможет:).Кстати там диск с исходниками от книжки и масм какой то. Есть своя подборка из инета и FIDO. удачной ловли багов,isFish p.s. поимей какой нить отладчик типа td.exe для начала хватит и избавит от кучи проблем ну и дизасемблер не помешает (IDA).
|