27.11.2020, 03:00 [+3 UTC]
в нашей команде: 4 892 чел. | участники онлайн: 2 (рекорд: 21)

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

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

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
8.0.2-PB2
26.11.2020

Общие новости:
09.10.2020, 16:55

Форум:
26.11.2020, 17:11

Последний вопрос:
26.11.2020, 22:09
Всего: 153373

Последний ответ:
26.11.2020, 18:38
Всего: 260689

Последняя рассылка:
26.11.2020, 17:45

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

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

Наша кнопка:

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

Отзывы о нас:
28.08.2019, 19:53 »
dar777
Это самое лучшее решение! [вопрос № 196248, ответ № 278597]
09.08.2012, 22:41 »
Joker888
Спасибо за помощь! [вопрос № 186512, ответ № 271399]
07.09.2010, 07:17 »
Иванов П.С.
Кратко, точно, подробно. Отлично! [вопрос № 179863, ответ № 262980]
 

• Assembler

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

Администратор раздела: Зенченко Константин Николаевич (Старший модератор)

 
 

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

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

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

Консультация онлайн # 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 - Петцольд Ч.


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

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

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Роман

Посетитель

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)

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Роман

Посетитель

ID: 401248

4

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

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

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

Старший модератор

ID: 31795

5

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

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

smile Сейчас набегут "доброжелатели" и начнут свои мнения навязывать. 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

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

Роман

Посетитель

ID: 401248

11

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

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

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

Старший модератор

ID: 31795

12

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

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

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

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
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 Зенченко Константин Николаевич (Старший модератор)

=====
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.
smile

князь

Посетитель

ID: 399030

16

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



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

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

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

спасибо)

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

Лысков Игорь Витальевич

Мастер-Эксперт

ID: 7438

17

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

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

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

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

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

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

=====
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен

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


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

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

2001-2020, Портал RFPRO.RU
Калашников О.А.  |  Гладенюк А.Г.
8.0.2-PB2    26.11.2020
JS 2.0.10 | CSS 4.0.8