Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2012, 16:54   #11
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Решил вам инструкцию написать, как сделал я!

1) Заведём папку для батников, для этого:
- запускаем Far
- нажимаем Alt+F9, чтобы развернуть на весь экран окно Far'a
- нажимаем Alt+F1 и выбираем диск (и путь), где будет находиться каталог с батниками
- нажимаем F7 (для создания каталога), вводим имя (к примеру, bats), нажимаем Enter

2) Создадим батник, для этого:
- нажимаем Shift+F4, вводим имя (к примеру, amake.bat)
- копируем в открытый файл следующий текст:
Цитата:
ml /c /coff "%1.asm"
link /SUBSYSTEM:CONSOLE "%1.obj"
- нажимаем F2, чтобы сохранить

3) Изменим переменную среды Path, для этого:
- переходим (в WinXP): Пуск -> Система -> вкладка "Дополнительно" -> кнопка "Переменные среды" -> в верхнем списке выбираем "Path" -> кнопка "Изменить"
- дописываем в самом конце точку с запятой и после (внимание: пробела после точки с запятой не надо) неё строку, к примеру: ";e:\bats;" (без ковычек), нажимаем "Ок"
Примечание: Чтобы изменения вступили в силу, нужно перезапустить Far (для выхода из Far'a нажмите F10)

4) Напишем программу, для этого
- переходим в каталог с проектами (если его нет, то создаём)
- нажимаем Shift+F4, вводим имя (к примеру, hello.asm)
- набираем текст программы (вручную, чтобы руки привыкали):
Код:
.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\kernel32.lib

.data
text        db    "Hello!", 0dh, 0ah
stdout      dd    ?
cWritten    dd    ?

.code
start:
    invoke GetStdHandle, STD_OUTPUT_HANDLE
    mov stdout, eax

    invoke WriteConsoleA, stdout, ADDR text, \
                          sizeof text, ADDR cWritten, NULL

    invoke ExitProcess, 0
end start
- нажимаем F2, чтобы сохранить
- сразу набираем (в нижней части окна Far'a):
Цитата:
amake hello
- нажимаем Enter
- результат ассемблирования и компоновки можно посмотреть, нажав Ctrl+O

Я каталог с MASM копировал не устанавливая, поэтому в своих программах пишу пути полностью:
Код:
include c:\masm32\include\windows.inc
include c:\masm32\include\kernel32.inc

includelib c:\masm32\lib\kernel32.lib
5) Просматриваем сгенерированный ассемблером код с помощью отладчика Ollydbg, для этого:
- устанавливаем Ollydbg. Или копируем распакованный каталог, например на диск С (в этом случае в переменную среды Path нужно добавить: ;C:\OllyDbg; )
- набираем (находясь в каталоге с полученным exe-файлом)
Цитата:
ollydbg hello
P.S. Я подписался на вашу тему, так что задавайте вопросы если, что непонятно по инструкции выше или что-то не будет получатся.

Последний раз редактировалось 8Observer8; 29.03.2012 в 17:05.
8Observer8 вне форума Ответить с цитированием
Старый 29.03.2012, 23:26   #12
:=)
Пользователь
 
Аватар для :=)
 
Регистрация: 26.12.2011
Сообщений: 78
По умолчанию

Большое спасибо 8Observer8!!! Я ещё сегодня нашёл другой способ ришения этой проблемы. Как я выше говорил файл ojb у меня создаетса я взял этот файл (без FAR) нажал на "открыть с помощью" и выбрал (из тех файлов, что шли вместе с книгой) Link16 ввёл имя которым я хочу назвать свой ехе и нажал еnter и в папке появился exe. Мне только потом объяснили, что на ХР те файлы, что шли вместе с книгой могут некоректно работать наверно из-за этого у меня так долго оно не получалось. СПАСИБО сам бы я долго думал
:=) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первая программа JaroslavB Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 25.02.2011 20:35
Первая программа на Java JokerWCC Помощь студентам 4 28.11.2010 17:08
Первая программа... ViJey Помощь студентам 6 27.09.2010 20:49
Моя первая программа. fragment Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 11.05.2010 11:46
Первая программа на WINAPI Syltan Win Api 8 27.02.2010 22:38