18.11.2017, 05:53 [+3 UTC]
в нашей команде: 2 266 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
15.11.2017, 20:36

Последний вопрос:
17.11.2017, 17:46

Последний ответ:
17.11.2017, 20:56

Последняя рассылка:
18.11.2017, 05:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
27.01.2010, 23:47 »
Гальцов Андрей
Спасибо за Ваше время smile В 3-й ссылке есть кое что полезное, что я возьму. [вопрос № 176349, ответ № 259014]
29.12.2011, 14:40 »
Сергей
Большое спасибо!! [вопрос № 184848, ответ № 269380]
30.05.2010, 10:22 »
Dimon4ik
Спасибо за помощь. [вопрос № 178713, ответ № 261735]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 319
Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 284
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 146

Перейти к консультации №:
 

Консультация онлайн # 191217
Раздел: • Assembler
Автор вопроса: Роман (Посетитель)
Отправлена: 10.07.2017, 11:11
Поступило ответов: 1

Здравствуйте! У меня возникли сложности с таким вопросом:

Мой вопрос можно расценить как личный. Я пытаюсь изучить Ассемблер, но читая книги вопросов возникает больше, чем ответов. Я решил изучать программирование из-за того, что мой ноутбук сначала выполняет желания Микрософта и производителя, а потом они вспоминают про меня!!! Я хочу изменить это. Вы, как эксперт, какие книги посоветуете и каких тупиков порекомендуете избегать?

Состояние: Консультация закрыта

Здравствуйте, Роман!

Язык ассемблера, это не только мнемоника команд, это также и понимание того, как процессор взаимодействует с остальными устройствами РС. Для начала я бы посоветовал Вам начать с изучения устройства процессора 8080(как прототипа, упрощенную модель).

© Цитата: вики
Процессор Intel 8086 представляет собой модернизированный процессор Intel 8080, и хотя разработчики не ставили перед собой цель достичь полной совместимости на программном уровне, большинство программ, написанных для Intel 8080, способны выполняться и на Intel 8086 после перекомпиляции. Новый процессор несёт в себе множество изменений, которые позволили значительно (в 10 раз) увеличить производительность по сравнению с предыдущим поколением процессоров компании.

Не смотря, что книга "не совсем свежая", в ней описан базис методик, которые были использованы в х86+ процессорах. К примеру чтение в регистр значения по адресу в памяти разбивается на несколько этапов-микропрограмм.
LD A,(nn) OCR(4) ORL(3) ORH(3) MRD(3)
LD A,(nn) - загрузить в регистр А, значение расположенное по адресу (nn);
OCR(4) - (operation code read) - чтение кода операции;
ORL(3) - (operand read, Ion byte) - чтение младшего байта 16-разрядного слова, непосредственно представленного в команде;
ORH(3) - (operand read, high byte) - чтение старшего байта 16-разрядного слова;
MRD(3) - (memory read) - чтение байта из косвенно адресованной ячейки памяти;
в скобках указанно количество циклов тактовой частоты затраченное на выполнение микропрограммы процессором. Даже после беглого изучения книги, можно будет переходить к более сложным системам х86+ и быстрому усвоению информации, такой как: многоуровневые кэши(быстрый, медленный), конвейеры с оптимизацией параллельных вычислений, синхронизация многоядерных систем процессора. Как говорится от простого к сложному. Шаг за шагом, постоянно усваивая подключаемые новые технологии, можно подойти к изучению современных процессоров(системы команд, взаимодействие в внешними устройствами и т.д.).

Можно сразу начать с программирования 64-х битных процессоров Руслан Аблязов - Программирование на ассемблере на платформе х86-64, но потом каждое новое слово, будет заставлять делать шаг назад.
Удачи!


Консультировал: Зенченко Константин Николаевич (Модератор)
Дата отправки: 11.07.2017, 18:21

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 191217

Зенченко Константин Николаевич
Модератор

ID: 31795

# 1

= общий = | 10.07.2017, 11:34 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

Когда Вы задавали свой вопрос, то у Вас была перед глазами памятка:

© Цитата:
Книги по Ассемблеру
Assembler для DOS, Windows и UNIX - Зубков С.В.
Assembler. Практикум - Юров В.И.
Assembler. Учебник для вузов - Юров В.И.
Assembler. Учебный курс - Пирогов В.Ю.
Архитектура IBM PC и язык Ассемблера - Митницкий В.Я.
Программирование на языке ассемблера IBM PC - Пильщиков В. Н.
Ассемблер в задачах защиты информации - Абашев А.А.
Ассемблер для процессоров Intel Pentium - Магда С.Ю.
Ассемблер и дизассемблирование - Пирогов В.Ю.
Ассемблер и программирование для IBM PC - Абель Питер
Изучаем ассемблер - Крупник А.Б.
Искусство программирования на Ассемблере. Лекции и упражнения - Голубь Н.Г.
Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера - Скэнлон Л.
Системное программирование на персональном компьютере - Фельдман С.К.
Язык ассемблера для процессоров Intel - Ирвин, Кип
Язык ассемблера. Уроки программирования - Рудаков П.И.
Ассемблер для Windows - Пирогов В.Ю.
Ассемблер. Разработка и оптимизация Windows-приложений - Магда Ю.С.
Программирование на аппаратном уровне. Специальный справочник - Кулаков В.
Программирование аппаратных средств в Windows - Несвижский В.
Программирование на языке ассемблера для микропроцессоров 8080 и 8085 - Л. Левенталь
Программирование на языке ассемблера для микроконтроллеров семейства i8051 - Каспер Эрни
Книги по WinAPI (на С)
Создание эффективных WIN32-приложений - Рихтер Джеффри
Программирование для Windows 95 - Петцольд Ч.


© Цитата: Роман
мой ноутбук сначала выполняет желания Микрософта и производителя, а потом они вспоминают про меня!

Если Вам не трудно уточните, что Вы хотите.

Роман
Посетитель

ID: 401248

# 2

= общий = | 10.07.2017, 12:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Экспертам раздела:

Уточнение.
Вся литература, мягко говоря, "не свежая". Вспомогательные программы только 32 разрядные, а сейчас всё переделывают на 64 разряда. А Windows я упомянул в качестве мотива.
P. S. В одной из книг было написано: "Покупая программу, вы платите за идею."

Зенченко Константин Николаевич
Модератор

ID: 31795

# 3

= общий = | 10.07.2017, 13:19 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

Тогда Вам нужен Руслан Аблязов - Программирование на ассемблере на платформе х86-64

© Цитата:
ISBN 978-5-94074-676-8
В данной книге речь идёт о работе процессора в двух его основных режимах:
защищённом режиме и 64-битном, который также называют long mode («длинный
режим»). Также помимо изложения принципов и механизмов работы процессора в
защищённом и 64 -битном режимах, речь пойдёт о программировании на ассемблере
в операционных системах семейства Windows, как в 32-битных, так и 64-битных
версиях. Рассматривается не только разработка обычных приложений для операци-
онных систем Windows, но и разработка драйверов на ассемблере. При написании
книги уделялось большое внимание именно практической составляющей, т.е. изло-
жение материала идёт только по делу и только то, что необходимо знать любому
системному и низкоуровневому программисту. Последний раздел книги посвящён
принципам работы многопроцессорных систем, а также работе с расширенным про-
граммируемым контроллером прерываний (APIC)

Роман
Посетитель

ID: 401248

# 4

= общий = | 10.07.2017, 15:38 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Благодарю! А сами Вы лично считаете Ассемблер актуальным и долгоживущим языком?

Зенченко Константин Николаевич
Модератор

ID: 31795

# 5

= общий = | 10.07.2017, 16:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

© Цитата: Роман
актуальным и долгоживущим языком

smile Сейчас набегут "доброжелатели" и начнут свои мнения навязывать. smile

Ассемблер - это только вершина "зла". smile
Знание Ассемблера позволяет:
- разобратся в работе железа на низком уровне;
- разобратся в работе ОСей;
- разобратся с работой и поведением программы, даже без исходных кодов.
Список можно продолжать долго, но думаю, что даже этого достаточно.

Роман
Посетитель

ID: 401248

# 6

= общий = | 10.07.2017, 16:29 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Очень исчерпывающий ответ! Ещё раз спасибо Вам. Осталось только набраться терпения...

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 7

= общий = | 10.07.2017, 16:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

Можно и я вставлю свои 5 копеек? smile
Бывает весьма полезным использование ассемблерных вставок для ускорения "узких" мест.
Да и отлаживать свою программу проще, когда понятен ассемблерный код. smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Роман
Посетитель

ID: 401248

# 8

= общий = | 10.07.2017, 16:41 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Вы как буд-то мои мысли читаете. Именно так я и хочу испраить свой(МОЙ) ноутбук. Благодарю за понимание!

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 9

= общий = | 10.07.2017, 17:00 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

Сначала озвучьте, что именно хотите исправить.
Потом уже будем думать, как это можно исправить.
Вполне возможно, уже есть готовые инструменты, способные исправить то, что надо.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

Зенченко Константин Николаевич
Модератор

ID: 31795

# 10

= общий = | 10.07.2017, 17:12 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

На счет долгоживучести:
В разных источниках встречалась информация, что чуть ли завтра РС перейдут с ассемблера на языки логического программирования(Prolog, Lisp). Но пока полноценную виртуальную машину на микросхеме, вместо БИОС, ещё не придумали, только разрядность процессора увеличивают. Да и кто будет программировать эту машину в микросхему - ассемблерщики.
smile
Прототип уже как бы есть - ОСь Андроид - ядро Unix + виртуальная машина Java

Роман
Посетитель

ID: 401248

# 11

= общий = | 11.07.2017, 00:26 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Извините за задержку, смартфон сел.
Спасибо за предложение готовых решений, но для меня это пройденный этап - это тупик.
По поводу Андроида, отчасти Вы правы - это прототип. Но это прототип удалённой ОС, т. е. ОС где-то ( на сервере ), а у Вас на руках средство отображения и ввода информации.
Под долгоживучестью я подразумевал что Ассемблер создавался для процессора 8086 и если "родится" принципиально новый процессор, тогда всё, Ассемблер умрёт. Да и сейчас я, в поисках вспомогательного софта, обратил внимание, что ничего нового нет.

Зенченко Константин Николаевич
Модератор

ID: 31795

# 12

= общий = | 11.07.2017, 08:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

© Цитата: Роман
Ассемблер создавался для процессора 8086

Вы заблуждаетесь.
Ассемблер, это язык процессоров, микропроцессров, микроконтролеров.
Пока будут создаватся различные SMART-устройства с "мозгами" - будет существовать ассемблер.
smile

Роман
Посетитель

ID: 401248

# 13

= общий = | 11.07.2017, 09:35 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Я не имел ввиду двоичную систему. Мне пока нечем ответить( мало знаний) , но интуитивно я знаю, что я прав( я всегда прав ). Ничего личного, но я должен докопаться до сути.

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 14

= общий = | 11.07.2017, 10:44 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

© Цитата:
прототип удалённой ОС, т. е. ОС где-то ( на сервере )
Да ничего подобного! ОС на девайсе! То, что ОС общается с серверами по сети, так и компьютер делает тоже самое!
© Цитата:
если "родится" принципиально новый процессор, тогда всё, Ассемблер умрёт
В вашем понимании, Ассемблер только для х86? Ну-ну... У каждого контроллера и процессора есть свой Ассемблер. Даже если умрет х86, в чем я сильно сомневаюсь, уж очень много на нем сделано, то новый процессор, который придет, будет со своим Ассемблером. Какая принципиальная разница?
© Цитата:
в поисках вспомогательного софта, обратил внимание, что ничего нового нет
Вы так и не озвучили свои проблемы. Без этого - беспредметный разговор.
Э-э-э, как совместить высказывания?
© Цитата:
Мне пока нечем ответить( мало знаний)
и
© Цитата:
я знаю, что я прав( я всегда прав )
Не слишком ли Вы самоуверенны? Лично я думаю, что справедливо высказывание "я знаю, что ничего не знаю". Хотя, поверьте мне, багаж знаний у меня будет поболее Вашего...
© Цитата:
я должен докопаться до сути.
А вот это похвально... Могу только слегка огорчить, до сути докопаться невозможно, можно только приблизиться... smile

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

• Отредактировал: Лысков Игорь Витальевич (Старший модератор)
• Дата редактирования: 11.07.2017, 10:46

Зенченко Константин Николаевич
Модератор

ID: 31795

# 15

= общий = | 11.07.2017, 11:12 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Роман:

Если смотреть на перспективы развития процессоров тут или тут. Независимо, от того какая технология будет использована, процессор оставит за собой право управлять всем и вся, т.е. периферией, с помощью которой он будет считать, хранить, передавать или принимать данные.
К примеру уже сейчас процессор делегирует функцию обработки больших объемов данных графическому процессору видеокарты, а пересылкой занимается контролер DMA без участия процессора.

Неважно как будет хранится информация в процессоре, в двоичной системе или вспомнят о хорошо забытой старой троичной ЭВМ "Сетунь". Это не столь важно, важно то, что в любом случае команда управления - это сигнал, который передан в блок управления, соответственно будет выбран адресат, и потом будет передана команда что делать.

Сам по себе язык ассемблера представляет набор примитивов, из которых строится программа, а процессор представляет устройство, которое может только хранить, передавать, принимать, суммировать, сдвигать инвертировать данные и больше ничего. А уже из этих примитивов строятся микропрограммы, к примеру как умножение и деление.

• Отредактировал: Зенченко Константин Николаевич (Модератор)
• Дата редактирования: 11.07.2017, 11:14

князь
Посетитель

ID: 399030

# 16

= общий = | 16.07.2017, 00:47 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
Лысков Игорь Витальевич:



вопрос)
есть ли готовые малогабаитнные решения железа которые можно изучать и строить на их основе функциональное устройство программируя его на ассемблере?

я читал статью, что уже появляются такие устройства и российского производства) Если я правильно понимаю суть вопроса, то ассемблер многогранен, и чтобы понять работу ассемблера нужно его изучать его под конкретную архитектуру процессора. разные процессоры разная архитектура. конечно проще начать с низов и разбираться с проца 8080, но пока вы дойдете до современных уйдет уйма времени. конечно для программирования большинства устройств в настоящее время проца семейства 8080 более чем достаточно) я конечно могу ошибаться, но я думаю нужно изучать современную архитектуру процов)

Игорь Витальевич прошу Вас порекомендовать готовые решения Российских платформ)

спасибо)

=====
Правильного выбора в реальности не существует - есть только сделанный выбор и его последствия.

Лысков Игорь Витальевич
Старший модератор

ID: 7438

# 17

= общий = | 17.07.2017, 10:51 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
князь:

У нас принято новую тему подымать в новой консультации.
Ладно, так и быть, отвечу здесь.

Во-первых, изучать надо тот Ассемблер, который у конкретного контроллера.
Изучать, начиная с 8080, смысла нет. Разве что, ознакомиться для общего развития.

Готовыми решениями, тем более Российских платформ (живу в Украине), я не пользуюсь.
Мы на фирме разрабатываем сами и схемы, и платы, и программы :)

Из известных на основе ATMEL AVR лично сталкивался с Arduino. Обычная Mega328.
Народ обычно пользуется программами на Си, но я пишу исключительно на Ассемблере.

Есть решения и для ARM-ов. Но не пользовался, поэтому ничего не скажу.
На фирме тоже используем, но опять же применяем свои решения.

=====
Каждый выбирает по себе -
Щит и латы, посох и заплаты.
Меру окончательной расплаты
Каждый выбирает для себя.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14659 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн