1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 40
|
|
1 | |
Ассемблер начинающему05.10.2013, 19:54. Показов 2974. Ответов 29
Метки нет (Все метки)
Привет всем, являюсь новичком в ассемблере. хотелось бы узнать 1) какой ассемблер-компилятор лучше всего подходит для windows ? - поясню свой вопрос: хотелось бы научиться программировать используя самые-самые основы (!!!!!) ассемблера, и дальше уже научиться создавать и подключать самому библиотеки, а не пользоваться готовыми библиотеками - как предлагается например в некоторых случаях при изучении языков высокого уровня, 2) конечно же в дальнейшем интересует тема написания драйверов для какого-либо определенного радиоэлектронного устройства, - наверное придется научится работать и разбираться во временных диаграммах (эпюрах), 3) конечно же, интересуюсь конкретной дополнительной литературой для конкретного (!) ассемблера - насколько мне известно, ассемблеры сильно отличаются по своему синтаксису, 4) может быть кто либо на форуме сможет в дальнейшем предложить небольшую конкретную понятную задачу для программирования на ассемблере с самых-самых основ, чтобы прочувствовать "мощь" и "взаимодействие с железом" ассемблера and to guide and to assist through процесс написания. Спасибо.
0
|
05.10.2013, 19:54 | |
Ответы с готовыми решениями:
29
Ассемблер в паскале: как загрузить массив во встроенный ассемблер и произвести над любым из его чисел сложение(вычитание). Какую книгу почитать начинающему? порекоммендуйте, пожалуйста, начинающему Начинающему |
42 / 42 / 27
Регистрация: 29.01.2013
Сообщений: 277
|
|
05.10.2013, 23:53 | 2 |
попробуйте fasm
0
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
06.10.2013, 09:54 | 3 |
Сообщение было отмечено как решение
Решение
мммм..... можно начать писать ОСь, а также графический или текстовый редактор для DOS. Графический редактор нужен с кнопочками и менюшками. А текстовый с менюшками, кнопочками, форматированием и шрифтами. Пока что-то из этого напишешь, если не сломаешься, освоишься до уровня любителя, а дальше что-нить другое можно взять.
ИМХО
2
|
Мотороллер
|
06.10.2013, 10:35
#4
|
Не по теме: sh2ezo, если под винду то троянчиками можно баловаться:jokingly:
0
|
Mikl___
|
06.10.2013, 10:40
#5
|
Не по теме: Мотороллер,
0
|
Мотороллер
|
06.10.2013, 10:42
#6
|
Не по теме: Mikl___, ну почему гадости. мб из него потом выйдет хороший вирусоборец, и новый антивирус Goldov. а учитывая пост sh2ezo и ось тоже :D
0
|
1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 40
|
|
07.10.2013, 11:07 [ТС] | 7 |
Загрузил fasm, прочитал-просмотрел manual, ассемблер - в принципе не сложный язык - набор инструкций. однако возникли вопросы после просмотра "экзамлов" - кроме чисто ассемблеровских инструкций также имеются labels-комманды - например: "include", ".code", "invoke", "section", "start", "format", "entry" ... возможно количество таких labels-комманд много - вопрос: имеется ли документация по таким labels, то есть формат (или правила) написания этих конкретно для fasm ? Спасибо.
0
|
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
|
|
07.10.2013, 12:04 | 8 |
goldov, дык руководство по фасму. или же Руслан Аблязов (название не помню).
0
|
1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 40
|
||||||
08.10.2013, 20:21 [ТС] | 9 | |||||
Познакомился с примером "hello" в fasm - этот пример компилируется и работает.
далее попробовал изменить немного структуру кода (так как объясняется ), чтобы начать с самых основ ассемблера (директивы ".code", ".data" ... являются искусственным упрощением введенным в современные ассеблер-компиляторы, что затрудняет процесс обучения и реального восприятия и понимания команд и директив ассемблера (любого), составляющих его основу):
вопрос - в чем заключается ошибка ? рассчитан ли fasm на использование чисто модернизированных версий директив и команд (то есть имеется ограничение на правописание для данного компилятора) ? или в начале кода-программы пропущена какая-либо дополнительная командная или директивная строка для данного компилятора ? Спасибо. Добавлено через 1 минуту "code ENDS" или "code ends" - роли не играет - все-равно возникает ошибка "Illegal instruction".
1
|
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
|
||||||
08.10.2013, 21:43 | 10 | |||||
это tasm\masm. у Вас фасм, тут нету всяких code para public code ends. тут есть
0
|
Ушел с форума
16277 / 7602 / 1064
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
09.10.2013, 10:50 | 11 |
goldov,
есть стандартные и есть упрощенные директивы сегментации, стандартные директивы сегментации это "code1 segment para private", "assume cs:code1" и бла-бла-бла. Чтобы не забивать себе голову, 40 лет назад придумали упрощенные директивы сегментации, когда указывают модель памяти одной строкой .model tiny/ small/ medium/ large/ huge/ flat и для указания сегмента кода пишут .code, данных - .data, сегмента стека и его размер - .stack 100h и в конце никаких "code1 ENDS". Для программ под Windows используют только .model flat Для FASM'а это всё не работает
0
|
1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 40
|
|
09.10.2013, 23:18 [ТС] | 12 |
Насколько начинаю разбираться, ассемблеры, разработанные хотя бы для одной и той же операционной системы, сильно отличаются по синтаксису, то есть по написанию директив и команд. Такая ситуация ставит новичка в непростое положение - мне хотелось бы подойти к изучению ассемблера не с точки зрения удобства и изящества, сколько с точки зрения приближенной к ассемблерам старого поколения, то есть когда директивы и команды (определенной версии ассемблера) приближены к терминам и словам, описывающих "железо" и микропроцессорную архитектуру. поэтому, насколько мне понимается FASM представляет собой удобный и изящный ассемблер нового поколения, где слова-команды-директивы несколько завуалированно описывают "железо" и "микропроцессор".
Позволяют ли TASM/MASM писать программы, используя команды и директивы (не с точки зрения синтаксического удобства) приближенные к "микропроцессорам"-"микроэлектронике"-"железу" ? Имеются ли другие версии ассемблера работающие в среде Windows-DOS, которые лишены изящества, но приближены к реальной архитектуре "железа" в синтаксическом смысле (слова-команды-директивы) ? Спасибо. Добавлено через 9 минут Mikl, спасибо за ответ, теперь мне стало понятно, что в определенных ассемблерах используются только упрощенные и "изящные" версии команд и директив. У меня же другая цель - поближе познакомиться с "железом" и "микропроцессорной архитектурой" и поэтому использовать при написании ассемблеровских кодов синтаксис, пусть и старого поколения, но дающий и представляющий определенный смысл с точки зрения "микроэлектроники". Надеюсь Вы понимаете меня
0
|
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
|
|
09.10.2013, 23:24 | 13 |
сегменты это вообще дань операционной системе. можно в фасме создать чистый бинарник из программного кода, это и приблизит Вас к железу. а вообще фасм не лешает Вас "железности"-"процессорности", ибо все команды процессора сохранены
0
|
Ушел с форума
16277 / 7602 / 1064
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
10.10.2013, 04:02 | 14 |
goldov,
людям вообще свойственно упрощать свою жизнь, а у ТС тяга к обратному Попробуй писать в машинных кодах, но помни, что у тебя впереди еще примерно лет 50 чтобы перейти к очевидному — использовать компилятор ассемблера (MASM/FASM/HLA) со всеми "высокоуровневыми наворотами", назначение компьютера — вычислять, назначение программиста — творить, и не нужно подменять программистом компьютер — всёравно компьютер точнее, последовательнее и меньше делает ошибок из-за невнимательности
0
|
1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 40
|
|
10.10.2013, 22:49 [ТС] | 15 |
Mikl и Мотороллер, спасибо за сообщения.
"...у ТС тяга к обратному..." - на самом деле это не так - наверное вы также учились в Советской или экс-Советской школе - от простого к сложному - то есть от "low level" к "high level" (или к "low level with high attributes" - hla/fasm/masm). 1) имеется ли литература по написанию программ в машинных кодах ? 2) где и в какой литературе и документации можно узнать все о машинных кодах, конкретно для Intel-микропроцессоров и др. ? 2) можно ли открыть текстовый редактор и набрать в нем машинные коды как комбинация "1" и "0" ? а затем записать файл с расширением ".exe" ? и затем запустить такой файл и ожидать что он будет работать правильно ? 3) отличаются ли машинные коды в рамках одного семейства компьютеров-процессоров ? 4) отличаются ли машинные коды для микропроцессоров Intels, AMD, Apples, и т.д. ? Спасибо.
0
|
Ушел с форума
16277 / 7602 / 1064
Регистрация: 11.11.2010
Сообщений: 13,617
|
|
11.10.2013, 05:08 | 16 |
В Гугл спросить, конечно, не судьба?
Нет, в пределах семейства х86 не различаются Для Intel и AMD совпадают, для остальных различаются
1
|
1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 40
|
|
11.10.2013, 12:11 [ТС] | 17 |
Mikl, спасибо за ответное сообщение.
0
|
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
|
|
11.10.2013, 16:24 | 18 |
0
|
Ушел с форума
16277 / 7602 / 1064
Регистрация: 11.11.2010
Сообщений: 13,617
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11.10.2013, 17:23 | 19 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Мотороллер,
а какой нужно было? Такой? Пример первый Не слышали о программе bugaga.com? Запускаем программу notepad.exe, пишем слово: «bugaga» или «bu» или просто «b» – результат всё равно будет одним и тем же – поэтому остановимся на однобуквенном варианте. Сохраняем документ под именем bugaga.com и запускаем. Открывается консольное окно, в котором ничего не происходит, висит курсор и все. Возвращаемся в файл-менеджер (или Проводник) и запускаем bugaga.com еще раз. Во втором окне курсор скачет по всему окну, а в первом курсор пропадает вообще. Программа грузит процессор на все 100%. Если к компьютеру подключен LPT-принтер, на него вываливаются пустые страницы. Открываем файл bugaga.com любым дизассемблером. Получаем текст программы из одной команды:
Пример второй У Криса Касперского есть статья Ассемблерные головоломки или "Может ли машина понимать естественный язык"? В статье рассказано, как любую дикую на первый взгляд мысль можно довести до практического воплощения. Ниже таблички из этой статьи, может быть ТС пригодятся
0
|
1 / 1 / 0
Регистрация: 06.07.2012
Сообщений: 40
|
|
11.10.2013, 19:23 [ТС] | 20 |
Mikl и Мотороллер, спасибо еще раз за интересные и полезные коментарии.
0
|
11.10.2013, 19:23 | |
11.10.2013, 19:23 | |
Помогаю со студенческими работами здесь
20
Подскажите начинающему Совет начинающему Git начинающему Подскажите начинающему..:))) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |