![]() |
|
![]() ![]() ![]() |
|
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Интересует такая вещь: вот разузнал, что ассемлер это команды процессору, так вот мне интересно можно ли на ассемблере решить любую задачу? Тоесть, можно ли у примеру на ассемблере игры делать или браузеры делать и т.д.?
|
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Все это можно. Не стоит забывать, что любые программы в итоге компилируются, по сути, в ассемблер. Пищи в гугле слово MenuetOS, операционка написанная на ассемблере (fasm), там и браузер и игры и сервера, все это умещается на одной дискетке.
Сам на ассемблере писал приложения работающие с базами данных BDE/ADO, с Lua скриптами, клиент-серверные программы, ботов для игр, irc, DirectConnect, работа с XML через подключение готовой dllки libxml2, работа с регулярными выражениями через подключение regexp dllки, написание COM клиентов/серверов, работа с MAPI. В общем все ограничивается только твоей фантазией, а написать можно любую программу. Из недостатков - много писанины (обычно решается через готовые каркасы и fasmoвскими макросами), ограниченное количество библиотек с нестандартными контролами, которых нет в windows, например того же splitter'a нет в винде. Отсутствие системы классов в том виде в котором мы привыкли в C++, есть некоторые "породии" на макросной основе, но недостаточно гибкие. Компиляторы слабенько оптимизируют код, поэтому эту задачу приходится брать на себя. Если обходиться одними стандартными средствами windows, то программы будут весить считанные килобайты, не будут жрать много памяти и при должной оптимизации работать быстро. У меня одно время работал WEB сервер, который весил 8кб. Ни требовалось никакой установки и настройки. Только выбрать директорию с htm файлами, без CGI правда, но для homepage сойдет. |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
SABROG спасибо огромное за ответ. Я конечно понимаю что не потеме, но всё таки подскажите плз какие нибудь ресурсы по изучению ассемблера, а то излазил кучу сайтов и всё равно не могу понять синтаксиса (ну всех этих команд)
|
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Посмотрите на www.wasm.ru
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
anwe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
Я думаю wasm для начало будет тяжеловато. Начни с книги Зубкова "Ассемблер для DOS, Windows и Unix" - хорошая книга.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Лет 5 назад разговаривал с Зубковым в fido, на эхе ru.asm (вроде бы). Предлагал мне написать книгу по ассемблеру в windows, с освещением написания vxd, wdm, sys драйверов, разницы между win16, win32 программами и т.п. Говорил, что у него нет времени, но обещался помочь в издании, сказал, что с продажи книги идет 8% автору, а это не мало. Потом, правда, идея угасла ;)
|
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 1 Всего: 99 |
SABROG, не обижайся - это зависть!
![]() По теме: Loginanton, зайди на сайт www.g24-tec.com, там есть Примеры программирования на ассемблере для AVR микроконтроллеров Там как бы на более простом устройстве, чем компьютер, объясняется как и что. Главное не забывать, что ассемблер это двигание чисел туда сюда и всякие прыжки для достижения определенного результата... ![]() -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
cardinal я английский не очень хорошо знаю
![]() ![]() |
|||
|
||||
anwe |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 8 Всего: 23 |
||||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Можете подсказать как код ассмеблера компелировать в .exe ?
Это сообщение отредактировал(а) Loginanton - 19.12.2007, 15:49 |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
зависит от ассемблера
В Зубкове описано для TASM, MASM и WASM Loginanton, тебе же все пишут - Зубкоооов! ![]() -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Дык я читаю прям сейчас вот Зубкова. Но пока как компелировать невидел. Наверно ещё не дочитал)
Люди обьясните, я чёто не понимаю: Вот скачал MASM, запукаю командную строку из под него, далее прописываю ml /с hello-2.asm (это я из книжонки, типо повторить хочу), а он пишет мол ml не является командой. Обьясните плиз подробно как получить из файла .asm экзешник. Это сообщение отредактировал(а) Loginanton - 19.12.2007, 17:02 |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 1 Всего: 17 |
Что значит "запускаю командную строку из-под него"?
Если винда пишет, что ml не является командой, значит она не видит такого экзешника. Закинь ml и свой asm-файл в одну папку и компилируй (соответственно, сначала надо в cmd зайти в эту папку) -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Подскажите плиз что такое .data .data? .const .code и для чего они, и вообще обязательно ли их использовать, так же подскажите пожалуйста что обозначают start и end start в следующем коде:
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
Loginanton,
.data - секция данных .const - секция данных только для чтения .code - секция кода для чего они? для описания функционально разных сегментов выходного файла использовать их или нет зависит от конечной цели start в данном случае определяет символ в секции кода, а также его идентификатор каждому идентификатору поставлен в соответствие адрес любая ссылка (в инструкциях перехода и т. д) на идентификатор в процессе компиляции (или компоновки) преобразуется в соответствующий адрес end start определяет разность между текущим адресом и start (используется для хранения дополнительной информации о символе) конструкция не обязательна Это сообщение отредактировал(а) MAKCim - 2.1.2008, 20:17 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
А можешь как нибудь объяснить на более лёгком языке, обьяснить на пальцах. А то то что ты написал я уже читал во всяких книгах по асму
|
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 1 Всего: 99 |
Loginanton, совет только один: смотри примеры, и читай то, что написал MAKCim пока не поймешь - других вариантов нет...
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
объяснил как мог, проще не представляю как -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Вот этот момент можешь поподробнее |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 1 Всего: 99 |
Для того, чтобы запустить подпрограмму в ассемблере тебе нужен адрес "прыжка" туда. То есть то куда ты хочешь jmp делать. Для этого в коде ты прописываешь метку (например start) и потом можешь сделать
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Вот код одной програмки из учебника по асму:
Вот подскажите как она работает, а то я в ней кроме присваивания переменным значений ничего не увидел, и не понимаю каким образом она выводит какое то окно да ещё и звуки издаёт) |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Так там просто написан код, типо первая прога, нада просто записать код в блокноте.
|
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
Loginanton,
без объяснения? не верю -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Loginanton |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 114 Регистрация: 8.11.2007 Репутация: нет Всего: нет |
Ну там обьяснения к командам, а вот как работает сама программа не написано.
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |