Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.145.74.54] |
|
Сообщ.
#1
,
|
|
|
Начал изучать asm, но столкнулся с такой проблемой: ни одна программа написанная мной не компилируется, я не соблюдаю какие-то правила со стеком связанные или другие. Нашел на сайте www.assembler.ru код простейшей программы, которая даже ничего не делает, а просто начинает свою работу и заканчивает, но даже при ее компиляции в Masm501 выдал около 7! ошибок.
Может у кого-нибудь есть другой вариант элементарного кода, используя который я мог бы вводить свои первые инструкции и исполнять их? |
Сообщ.
#2
,
|
|
|
Ты бы поподробнее написал: какой код, какие ошибки, какие параметры задаёшь при компилировании.
|
Сообщ.
#3
,
|
|
|
Код такой:
.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" Спасибо за помощь. |
Сообщ.
#4
,
|
|
|
Ну, во-первых, там написано, что компилируется это с помощью 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 |
Сообщ.
#5
,
|
|
|
Спасибо 7in. прога запускается, работает, я почти счастлив! А почти - потому что она отработав, сразу захлопывает окошко и о результатах работы можно только догадываться.
Кстати, компилится она в Tasm-e без проблем, а вот Microsoft Assembler сообщил, что мол "operand expected", ну да и хрен с ним, все равно Борман симпатичнее мне. |
Сообщ.
#6
,
|
|
|
Не знаю, почему захлопывается
|
Сообщ.
#7
,
|
|
|
У меня есть типовые заготовки на асме, на основе которых я пишу программки следующих форматов:
COM, MZ EXE, NE, PE Могу на почту скинуть для изучения |
Сообщ.
#8
,
|
|
|
А окошко схлопывается из-за настроек виндов...
У меня есть кое-что интересное на асме, если надо - скину, только для начала разберись в нем получше... Сам помню, как с Zilogа перелазил... З.Ы. Z80 is cool |
Сообщ.
#9
,
|
|
|
Тоже парился после Z80, но есть пара класных
книг Ассемблер -язык без границ (www.dmk.ru) ну и Питер Абель тебе поможет:).Кстати там диск с исходниками от книжки и масм какой то. Есть своя подборка из инета и FIDO. удачной ловли багов,isFish p.s. поимей какой нить отладчик типа td.exe для начала хватит и избавит от кучи проблем ну и дизасемблер не помешает (IDA). |