|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.02.2011, 09:32 | #11 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
Я не пользуюсь текстовыми редакторами и др. дополнениями, которые поставляются вместе с пакетами MASM32. По мне зачем учиться, как ими пользоваться? Хотя у всех свое понимание об удобности.
В общем могу посоветовать как сделать exe из asm для этого нужно: скопировать командную строку CMD.EXE приложение из папки C:\Windows\System32\ . И разместить в каталоге с компилятором. И в ней при компиляции пиши ml /c /coff name.asm & link /subsystem:windows name.obj. Чтоб не писать одно и тоже при частой компилировании можно написать в .BAT файл в тестовом редакторе и при компиляции просто тыркни по нему и командная строка выполнит твой .BAT . В результате получаешь EXE для Windows
мой сайт http://wanes101.16mb.com/myblog
|
20.02.2011, 17:19 | #12 | |
Адский тунеядец
Форумчанин
Регистрация: 11.06.2010
Сообщений: 164
|
Цитата:
1. Переменные, это абстрактные данные, т.е. они сами по себе не существуют. А регистры это не переменные. Они существуют физически на процессоре, и мы ни чего с ними не можем поделать (изменить). А на счет переменных - переменная это просто область памяти. Переменных ты можешь сколько угодно создать в своей программе (конечно сколько сегмент данных позволит). 2. Помню на счет этого тоже парился). Начну с конца: В DOS (или в BIOS), есть собственно заложенные функции (процедуры). Их называют прерываниями. Вызываются они командой int. Но прерывание - это одна большая функция, в которой есть как бы "несколько функций". К примеру у прерывания 21h есть функция 9, выполняющая вывод строки на экран. Также у прерывания есть функция 10h...Вся суть в чем: в регистр ah ты загружаешь номер функции прерывания. В данном случае мы делаем вывод строки на экран, и поэтому номер функции 9. Казалось бы все: Код:
так вот - эта выводимая строк есть параметр функции 9 прерывания 21h. У функций может быть и 2 и 3 и 4 параметра...В данном случае он один, и этот параметр есть ничто иное, как адрес выводимой строки. Для каждого параметра есть свой предназначенный регистр. Для нашей строки это регистр dx, куда и надо положить адрес выводимой строки: Код:
offset - это директива (не знаю как правильно это называется), "узнавающая" адрес. mov ah, 9; поместили номер функции mov dx, offset Message; поместили единственный параметр это функции - адрес выводимой строки int 21h; вызвали прерывание И тут сразу, как выполниться строка int 21h выведется сообщение. int 20h - это прерывание, которому в данном случае не надо указывать номер функции. Это прерывание завершает выполнение программы. 3. Код:
Советую все это проследить в CodeVIew (или в любом 16 битном отладчике). |
|
20.02.2011, 17:22 | #13 |
Адский тунеядец
Форумчанин
Регистрация: 11.06.2010
Сообщений: 164
|
Пиши программы в Far'e, как это предлагает Калашников (поидее ты его читаешь). И компилируй как он там предлагает).
Это досовская программа (16 bit), и при написании и компиляции её в qeditor из этого ничего хорошего не выйдет. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Первая программа на 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 |
Первая программа, C++ Bulder | edmynt | Помощь студентам | 2 | 31.01.2010 15:12 |