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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2010, 18:17   #1
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию Assembler

Такая проблема. Никак не могу начать изучения assemblera. Проблема вот в чем. Куча книжек по тому, как писать программу, но как скрмпилировать и что сделать не знаю. Пытался в TASM MASM ни чего не получилось.
Подскажите как создать, скомпилировать файл? И какую лучше выбрать программу для начального изучения?
Николай ПН вне форума Ответить с цитированием
Старый 21.03.2010, 18:51   #2
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

лично я начинал с masm32.
Цитата:
Подскажите как создать
Я пишу в блокноте. сохранение в файл с расширением *.asm
Простейшая программа в masm:
Код:
.386
.model flat,stdcall
option casemap:none
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
.const
a db "Hello",0
b db "World",0
.code
start:
invoke MessageBox,0,addr a,addr b,0
push 0
call ExitProcess
end start
компилируется прогой ml.exe и link.exe
Код:
ml /c /coff %1.asm
Link /SUBSYSTEM:WINDOWS /OPT:NOREF %1.obj
если чем помог, поставьте отзыв на весы
Xatr вне форума Ответить с цитированием
Старый 21.03.2010, 19:02   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

А зачем link отдельно звать?
p51x вне форума Ответить с цитированием
Старый 21.03.2010, 19:08   #4
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

прога ml делает только *.obj файл.
А link или polink уже делает exe.
если чем помог, поставьте отзыв на весы
Xatr вне форума Ответить с цитированием
Старый 21.03.2010, 19:23   #5
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию

у меня проблема ни ml, ни link не открывются...точнее на 5 секунд что-то происходит типо командной строки(как будто) вылетает...и все
Николай ПН вне форума Ответить с цитированием
Старый 21.03.2010, 19:40   #6
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

ну так правильно. Создай файл *.cmd и в нём пропиши 2 нижние строки из 2-го поста.
Или с помощью программы cmd зайди в этот каталог и вставь эти строки по одной и запусти программу.
Только вместо %1 вставь название своего файла.
если чем помог, поставьте отзыв на весы

Последний раз редактировалось Xatr; 21.03.2010 в 19:46.
Xatr вне форума Ответить с цитированием
Старый 21.03.2010, 19:59   #7
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию

еще осталось несколько вопросов:
1) Link /SUBSYSTEM:WINDOWS /OPT:NOREF %1.obj- что делает это?
2) И возможно ли файлы создавать в отдельной папке, компилировать их там же....а чтобы ml and link оставались в бин?
А то не удобно хранить все файлы в 1 папке, ладно это 1 прога, а что если их 100
Николай ПН вне форума Ответить с цитированием
Старый 21.03.2010, 20:13   #8
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

можно и это. у меня всё лежит в папке masm.
в этой папке лежит папка masm32, в которой есть bin и всё остальное, нужное.
Из папки masm я делаю виртуальный диск (subst z: masm).
создаётся диск Z, в котором есть папка masm32 и, ну например, prog, в которой лежат все исходники. Лично мне с виртуальным диском удобнее и работают cmd файлы (внизу)...

есть bldmin.cmd файл:
Код:
@echo off
if exist %1.obj del %1.obj
if exist %1.exe del %1.exe
\masm32\bin\ml /c /coff /nologo %1.asm
if not exist %1.rc goto nores
\masm32\bin\rc %1.rc
\masm32\bin\Link /SUBSYSTEM:WINDOWS /MERGE:.rdata=.text %1.obj %1.res
goto TheEnd
:nores
\masm32\bin\Link /SUBSYSTEM:WINDOWS /MERGE:.rdata=.text %1.obj
:TheEnd
dir %1.*
pause
который всё компилирует. можно его скопировать в папку с исходником и заменить %1 на название исходника. или в коммандной строке написать bldmin "название без расширения". например bldmin source
В папке bin есть bldall.bat, можно использовать и его...


Цитата:
Link /SUBSYSTEM:WINDOWS /OPT:NOREF %1.obj- что делает это?
Link - программа для создания exe
/SUBSYSTEM:WINDOWS - создать exe с использованием окон
/SUBSYSTEM:CONSOLE - создать exe с использованием окна консоли
%1.obj - промежуточный файл программы.
если чем помог, поставьте отзыв на весы

Последний раз редактировалось Xatr; 21.03.2010 в 20:28. Причина: оформление
Xatr вне форума Ответить с цитированием
Старый 21.03.2010, 20:29   #9
Николай ПН
Пользователь
 
Регистрация: 23.02.2010
Сообщений: 75
По умолчанию

и последний вопрос: В книге Зубкова есть текст:
.model tiny
.code
org 100h
start: mov ah, 9
mov dx,offset message
int 21h
ret
message db "Hello World!", 0Dh, 0Ah, '$'
end start

Написано, что должно выдать фразу. Но у меня не получает, не подскажите как можно запустить?
Николай ПН вне форума Ответить с цитированием
Старый 21.03.2010, 20:32   #10
Xatr
Форумчанин
 
Аватар для Xatr
 
Регистрация: 17.09.2008
Сообщений: 349
По умолчанию

этот исходник для TASM или MASM. для MASM32 он не подойдёт.
если чем помог, поставьте отзыв на весы

Последний раз редактировалось Xatr; 21.03.2010 в 21:47.
Xatr вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# + Assembler Studento4ka Общие вопросы .NET 6 17.11.2009 07:51