Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Asm для начинающих > Возможности ассеблера |
Автор: Loginanton 11.12.2007, 13:56 |
Интересует такая вещь: вот разузнал, что ассемлер это команды процессору, так вот мне интересно можно ли на ассемблере решить любую задачу? Тоесть, можно ли у примеру на ассемблере игры делать или браузеры делать и т.д.? |
Автор: SABROG 11.12.2007, 15:18 |
Все это можно. Не стоит забывать, что любые программы в итоге компилируются, по сути, в ассемблер. Пищи в гугле слово 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 11.12.2007, 15:30 |
SABROG спасибо огромное за ответ. Я конечно понимаю что не потеме, но всё таки подскажите плз какие нибудь ресурсы по изучению ассемблера, а то излазил кучу сайтов и всё равно не могу понять синтаксиса (ну всех этих команд) |
Автор: ksili 11.12.2007, 15:34 |
Посмотрите на www.wasm.ru |
Автор: anwe 11.12.2007, 21:14 |
Я думаю wasm для начало будет тяжеловато. Начни с книги Зубкова "Ассемблер для DOS, Windows и Unix" - хорошая книга. |
Автор: MAKCim 11.12.2007, 22:17 | ||
![]() |
Автор: SABROG 12.12.2007, 12:27 |
Лет 5 назад разговаривал с Зубковым в fido, на эхе ru.asm (вроде бы). Предлагал мне написать книгу по ассемблеру в windows, с освещением написания vxd, wdm, sys драйверов, разницы между win16, win32 программами и т.п. Говорил, что у него нет времени, но обещался помочь в издании, сказал, что с продажи книги идет 8% автору, а это не мало. Потом, правда, идея угасла ;) |
Автор: cardinal 13.12.2007, 00:17 |
SABROG, не обижайся - это зависть! ![]() По теме: Loginanton, зайди на сайт www.g24-tec.com, там есть http://g24-tec.com/product_info.php/products_id/31 Там как бы на более простом устройстве, чем компьютер, объясняется как и что. Главное не забывать, что ассемблер это двигание чисел туда сюда и всякие прыжки для достижения определенного результата... ![]() |
Автор: Loginanton 15.12.2007, 18:19 |
cardinal я английский не очень хорошо знаю![]() ![]() |
Автор: anwe 15.12.2007, 23:53 |
Я же подсказывал: http://dump.ru/files/2/20000845/ |
Автор: Loginanton 19.12.2007, 15:48 |
Можете подсказать как код ассмеблера компелировать в .exe ? |
Автор: ksili 19.12.2007, 15:52 |
зависит от ассемблера В Зубкове описано для TASM, MASM и WASM Loginanton, тебе же все пишут - Зубкоооов! ![]() |
Автор: Loginanton 19.12.2007, 15:55 |
Дык я читаю прям сейчас вот Зубкова. Но пока как компелировать невидел. Наверно ещё не дочитал) Люди обьясните, я чёто не понимаю: Вот скачал http://www.masm32.com/download/m32v9r.zip, запукаю командную строку из под него, далее прописываю ml /с hello-2.asm (это я из книжонки, типо повторить хочу), а он пишет мол ml не является командой. Обьясните плиз подробно как получить из файла .asm экзешник. |
Автор: ksili 21.12.2007, 07:05 |
Что значит "запускаю командную строку из-под него"? Если винда пишет, что ml не является командой, значит она не видит такого экзешника. Закинь ml и свой asm-файл в одну папку и компилируй (соответственно, сначала надо в cmd зайти в эту папку) |
Автор: Loginanton 2.1.2008, 18:25 | ||
Подскажите плиз что такое .data .data? .const .code и для чего они, и вообще обязательно ли их использовать, так же подскажите пожалуйста что обозначают start и end start в следующем коде:
|
Автор: MAKCim 2.1.2008, 20:12 |
Loginanton, .data - секция данных .const - секция данных только для чтения .code - секция кода для чего они? для описания функционально разных сегментов выходного файла использовать их или нет зависит от конечной цели start в данном случае определяет символ в секции кода, а также его идентификатор каждому идентификатору поставлен в соответствие адрес любая ссылка (в инструкциях перехода и т. д) на идентификатор в процессе компиляции (или компоновки) преобразуется в соответствующий адрес end start определяет разность между текущим адресом и start (используется для хранения дополнительной информации о символе) конструкция не обязательна |
Автор: Loginanton 3.1.2008, 20:31 |
А можешь как нибудь объяснить на более лёгком языке, обьяснить на пальцах. А то то что ты написал я уже читал во всяких книгах по асму |
Автор: cardinal 3.1.2008, 20:38 |
Loginanton, совет только один: смотри примеры, и читай то, что написал MAKCim пока не поймешь - других вариантов нет... |
Автор: Loginanton 3.1.2008, 21:16 | ||
Вот этот момент можешь поподробнее |
Автор: cardinal 3.1.2008, 22:15 | ||
Для того, чтобы запустить подпрограмму в ассемблере тебе нужен адрес "прыжка" туда. То есть то куда ты хочешь jmp делать. Для этого в коде ты прописываешь метку (например start) и потом можешь сделать
|
Автор: Loginanton 4.1.2008, 20:52 | ||
Вот код одной програмки из учебника по асму:
Вот подскажите как она работает, а то я в ней кроме присваивания переменным значений ничего не увидел, и не понимаю каким образом она выводит какое то окно да ещё и звуки издаёт) |
Автор: MAKCim 4.1.2008, 20:56 |
читай в учебнике |
Автор: Loginanton 4.1.2008, 21:02 |
Так там просто написан код, типо первая прога, нада просто записать код в блокноте. |
Автор: MAKCim 4.1.2008, 21:05 |
Loginanton, без объяснения? не верю |
Автор: Loginanton 4.1.2008, 21:36 |
Ну там обьяснения к командам, а вот как работает сама программа не написано. |