Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Assembler
Перезагрузить страницу Ассемблер PDP-11 и VAX
Ответ
 
Опции темы Опции просмотра
  (#16 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 19.02.2014, 04:35

Цитата:
Сообщение от Matematic Посмотреть сообщение
Непосредственный операнд там в команде невозможен?
Да, только через механизм (PC)+

Индексная адресация более сложная. Я сейчас просто не помню, там много чего складывается.
Короче, это отдельный тип адресации, мало общего с автоинкрементом/автодекрементом

Прямая адресация - это косвенная автоинкрементная по PC. То есть непосредственно за командой лежит не сам операнд, а слово, содержащее его адрес.

В каждой нормальной команде адресная часть занимает 12 бит, 6 бит источник и 6 бит приемник. В эти 6 бит входят три бита, указывающие тип адресации и три бита номера регистра 0-7.
Включенный бит косвенной адресации в каждом случае означает одну и ту же дополнительную операцию: обращение к памяти по полученному адресу
Ответить с цитированием
Пользователь сказал cпасибо:
Matematic (19.02.2014)
  (#17 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 19.02.2014, 05:01

Цитата:
Сообщение от Alexiski Посмотреть сообщение
В каждой нормальной команде адресная часть занимает 12 бит, 6 бит источник и 6 бит приемник. В эти 6 бит входят три бита, указывающие тип адресации и три бита номера регистра 0-7.
Включенный бит косвенной адресации в каждом случае означает одну и ту же дополнительную операцию: обращение к памяти по полученному адресу
Т. е. я все же прав, получается, что автоинкремент с включенным битом косвенности, это в общем-то двойная косвенная адресация.

Цитата:
Прямая адресация - это косвенная автоинкрементная по PC. То есть непосредственно за командой лежит не сам операнд, а слово, содержащее его адрес.
Любопытно получается. Т. е. прямая адресация там делается через двойную косвенную по сути дела. Автоинкремент по PC - это уже по сути дела косвенная адресация через регистр (в данном случае это регистр PC). А обращение к операнду по полученному таким способом адресу (т. к. у нас включен бит косвенности) означает, что у нас имеет место двойная косвенная адресация.

Верно я понимаю?
Ответить с цитированием
  (#18 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 19.02.2014, 05:24

Небольшое пояснение, чтобы был понятен ход моих мыслей

Непосредственная адресация - это автоинкрементная адресация по PC. То есть по сути дела это косвенная регистровая адресация с использованием регистра PC для хранения адреса.

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

Т. е. в регистре PC хранится адрес некоторого слова (якобы непосредственного операнда команды). А в этом слове хранится уже адрес целевого операнда.

Таким образом получается, что прямая адресация в системе команд PDP-11 реализована как двойная косвенная адресация.
Ответить с цитированием
  (#19 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 19.02.2014, 15:11

Ну да, всё правильно.

Честно говоря, уже запутался, на что отвечал, на что нет, какие вопросы остались.
Да и не такой уж я эксперт по PDP-11, многое уже просто не помню
Ответить с цитированием
  (#20 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 19.02.2014, 23:19

Да нет, Вы много мне рассказали.

Тут еще по мелочам хотел спросить.

1. Правду пишут, что у PDP-11 не было команд для работы с портами (аналога IN и OUT в x86)? Все порты каким-то образом отображались на физическое адресное пространство оперативной памяти, а запись в порты и считывание в них производилось при помощи обычных инструкций, позволяющих работать с памятью?

Вроде как пишут, что сейчас все RISC-процессоры работают по такой же схеме. Так что Intel/AMD сейчас единственная выжившая архитектура, в которой для работы с портами используются специальные команды.

2. Вы мне рассказали про то, как в PDP-11 устроена непосредственная и прямая адресация (можно даже сказать, их эмуляция). Мне вот интересно, а в ассемблере PDP-11 детали реализации этих двух способов обращения к операндам скрыты? Т. е. в ассемблере непосредственный операнд выглядит просто как числовая константа в команде, а "прямой" операнд выглядит как имя соответствующей переменной, указанное в команде? Т. е. внешне это выглядит в полной аналогии с синтаксисом ассемблера того же процессора x86 (его 16-ти и 32-ух-разрядной версии), несмотря на то, что реализация совсем не похожа?

Или же все это не так, и детали обращения к "непосредственному" и "прямому" операнду, существующие в машинном коде команды, отражены и в ассемблерной команде? Регистр PC и его автоинкремент явным образом указываются в ассемблерной команде?

Понимаю, что Вы этих деталей можете уже и не помнить, но вдруг этот момент про ассемблер Вам запомнился?

PS
Больше технических вопросов про этот процессор у меня нет, это уже бессмысленно спрашивать на форуме, дальше уже все равно надо читать книги и документацию. Есть еще несколько вопросов про PDP и VAX общего характера, которые хотелось мне Вам задать, Alexiski, если они Вас не затруднят

Последний раз редактировалось Matematic; 19.02.2014 в 23:27
Ответить с цитированием
Ads.
  (#21 (permalink)) Старый
CrazyPOVT CrazyPOVT вне форума
Member
 
Аватар для CrazyPOVT
 
Сообщений: 921
Сказал(а) спасибо: 3
Поблагодарили 92 раз(а) в 85 сообщениях
Регистрация: 05.11.2011
Адрес: Кумертау
По умолчанию 20.02.2014, 00:41

Цитата:
Сообщение от Matematic Посмотреть сообщение
1. Правду пишут, что у PDP-11 не было команд для работы с портами (аналога IN и OUT в x86)? Все порты каким-то образом отображались на физическое адресное пространство оперативной памяти, а запись в порты и считывание в них производилось при помощи обычных инструкций, позволяющих работать с памятью?

Вроде как пишут, что сейчас все RISC-процессоры работают по такой же схеме. Так что Intel/AMD сейчас единственная выжившая архитектура, в которой для работы с портами используются специальные команды.
Правда. Под устройства было зарезервировано, если не ошибаюсь, 8 килобайт адресного пространства из 64 (без диспетчера памяти проц архитектуры pdp-11 адресовал только 64 килобайта).
В архитектуре х86/х64 тоже широко используется отображение устройств на память - так быстрее получается. (Побочным эффектом такого подхода являются пресловутые 3,5 гигабайта в 32х разрядных виндах - полгига отводится устройствам.)


Лужу, паяю, ЭВМ починяю!
Ответить с цитированием
Пользователь сказал cпасибо:
Matematic (20.02.2014)
  (#22 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 20.02.2014, 01:43

Цитата:
Сообщение от CrazyPOVT Посмотреть сообщение
В архитектуре х86/х64 тоже широко используется отображение устройств на память - так быстрее получается. (Побочным эффектом такого подхода являются пресловутые 3,5 гигабайта в 32х разрядных виндах - полгига отводится устройствам.)
Интересно! Где бы еще об этом почитать на профессиональном серьезном уровне. На уровне программиста-ассемблерщика и разработчика операционных систем...
Ответить с цитированием
  (#23 (permalink)) Старый
CrazyPOVT CrazyPOVT вне форума
Member
 
Аватар для CrazyPOVT
 
Сообщений: 921
Сказал(а) спасибо: 3
Поблагодарили 92 раз(а) в 85 сообщениях
Регистрация: 05.11.2011
Адрес: Кумертау
По умолчанию 20.02.2014, 08:07

Цитата:
Сообщение от Matematic Посмотреть сообщение
Где бы еще об этом почитать на профессиональном серьезном уровне.
Начни с диспетчера устройств, вкладка "ресурсы" в свойствах устройств, потом плавно переходи на книги с названиями типа "Архитектура IBM PC" и подобными - их более 9000.


Лужу, паяю, ЭВМ починяю!
Ответить с цитированием
  (#24 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 20.02.2014, 08:42

Цитата:
Сообщение от CrazyPOVT Посмотреть сообщение
Начни с диспетчера устройств, вкладка "ресурсы" в свойствах устройств, потом плавно переходи на книги с названиями типа "Архитектура IBM PC" и подобными - их более 9000.
Нет, это слишком расплывчато и малоконкретно. Особенно про 9000 книг. Это я и сам себе хорошо представляю.
Ответить с цитированием
Ads
  (#25 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 20.02.2014, 09:01

Цитата:
Сообщение от Matematic Посмотреть сообщение
Мне вот интересно, а в ассемблере PDP-11 детали реализации этих двух способов обращения к операндам скрыты? Т. е. в ассемблере непосредственный операнд выглядит просто как числовая константа в команде, а "прямой" операнд выглядит как имя соответствующей переменной, указанное в команде? Т. е. внешне это выглядит в полной аналогии с синтаксисом ассемблера того же процессора x86 (его 16-ти и 32-ух-разрядной версии), несмотря на то, что реализация совсем не похожа?
Да, именно так. В ассемблере получается так, как должно быть по логике.
Ответить с цитированием
Пользователь сказал cпасибо:
Matematic (20.02.2014)
  (#26 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 21.02.2014, 04:28

Alexiski, все чисто технические вопросы по поводу PDP-11 у меня к Вам закончились, я получил достаточное общее представление об этой машине, дальше спрашивать бессмысленно, т. к. за более глубокими подробностями надо уже обращаться к литературе: учебникам и документации.

А вот несколько вопросов общего характера хотелось Вам задать.

1. Правду ли пишут, что система команд всех компьютеров серии VAX являлась просто расширением и обобщением системы команд PDP-11 на 32-ух-разрядный случай? Так, по крайней мере, пишет русская Википедия. Или это все далеко не так?

Если говорить более конкретно, я хотел бы узнать следующее. Был ли в VAX из PDP-11 позаимствован сам набор команд, который они там слегка расширили и добавили некоторое количество системных команд и сделали полноценный защищенный режим с уровнями привилегий? Или же это неверно, команды там были свои и они мало напоминали команды PDP-11?

И по поводу системы адресации. Вы мне рассказали, как она была устроена в PDP-11, в том числе про автоинкремент по PC. Забавная, оригинальная, немножко игрушечная система обращения к операндам. В VAX ее скопировали, то есть были все те же 2*4=8 режимов адресации, устроенных точно так же, как и в PDP-11 (только 32-ух-разрядный вариант)? Или же система адресации там сильно отличалась и она была совсем по другому принципу сделана?

Помню, Вы мне писали, что книжку по VAX посмотрели, но изучать не стали. Вдруг эти моменты Вам все-таки попались на глаза и запомнились?

2. По поводу все той же системы адресации в командах PDP-11...
Вы мне когда рассказывали, она мне чем-то понравилась, показалась изящной, изощренной, но немножко игрушечной. Она на самом деле достаточно бедная, в чем-то даже убогая, но в силу своей ортогональности, гибкости и некоторых оригинальных трюков (я про тот самый PC с автоинкрементом говорю) позволяла реализовать весь необходимый набор режимов адресации. По итогу эта игрушечная система адресации оказывалась очень удобной и полной.

Набор инструкций (т. е. кодов операций) невелик, но, как я понял, там есть все, что действительно нужно в работе. Он сам по себе полон и хорошо продуман.

Я вот подумал, если бы сейчас кто-то задумался возродить ЭВМ с такой архитектурой (под словом "архитектура" я понимаю то, каким видит процессор программист, т. е. набор команд, программно доступных регистров и режимов, а не его внутреннее устройство), с таким же примерно набором команд и режимов адресации, но только с обобщением на 64-разрядный случай (т. е. компьютер был бы 64-разрядный, как все современные компьютеры) и добавлением нормального защищенного режима работы, могла ли иметь эта попытка успех? Или же время таких вычислительных машин ушло в прошлое? Для CISC-архитектур (которых выжило к нашему времени очень мало) она слишком примитивна, а RISC-архитектурой (со всеми плюсами, которые дает RISC в плане оптимизации процессора и его быстродействия) она не является? Или, напротив, при определенном раскладе и везении такая реинкарнация этой старой архитектуры могла бы иметь коммерческий успех и занять достойную нишу?

Я понимаю, что все это очень субъективно. Но все-таки интересно было бы узнать Ваше мнение.
Ответить с цитированием
  (#27 (permalink)) Старый
CrazyPOVT CrazyPOVT вне форума
Member
 
Аватар для CrazyPOVT
 
Сообщений: 921
Сказал(а) спасибо: 3
Поблагодарили 92 раз(а) в 85 сообщениях
Регистрация: 05.11.2011
Адрес: Кумертау
По умолчанию 21.02.2014, 08:06

В нутрях этой няшки живёт "советский" pdp-11:


Лужу, паяю, ЭВМ починяю!
Ответить с цитированием
Пользователь сказал cпасибо:
Matematic (21.02.2014)
  (#28 (permalink)) Старый
CrazyPOVT CrazyPOVT вне форума
Member
 
Аватар для CrazyPOVT
 
Сообщений: 921
Сказал(а) спасибо: 3
Поблагодарили 92 раз(а) в 85 сообщениях
Регистрация: 05.11.2011
Адрес: Кумертау
По умолчанию 21.02.2014, 08:19

А это вапще мечта:

Вот... А к ней ещё док-станция была с цветным плоттером.
Это какбе наш ответ "тумбочкам" и "холодильникам" фирмы DEC.


Лужу, паяю, ЭВМ починяю!
Ответить с цитированием
Пользователь сказал cпасибо:
Matematic (21.02.2014)
  (#29 (permalink)) Старый
Matematic Matematic вне форума
Member
 
Аватар для Matematic
 
Сообщений: 388
Сказал(а) спасибо: 31
Поблагодарили 8 раз(а) в 8 сообщениях
Регистрация: 15.01.2007
По умолчанию 21.02.2014, 11:39

Ну что ж, это действительно забавно Настоящие исторические экспонаты. Планшеты и таблетки своего времени, можно сказать. Спасибо за интересные картинки, приятно было посмотреть
Ответить с цитированием
  (#30 (permalink)) Старый
Alexiski Alexiski вне форума
Любитель давать советы
 
Сообщений: 4,266
Сказал(а) спасибо: 27
Поблагодарили 54 раз(а) в 54 сообщениях
Регистрация: 16.10.2005
По умолчанию 21.02.2014, 14:19

Забавно, конечно, но лично для меня PDP-11 - это достаточно большой черный шкаф, на котором написано "СМ ЭВМ"

Про систему команд VAX ничего не могу сказать - помню только, что там очень много такого, чего в PDP-11 не было. Что, собственно, меня и отпугнуло - я был готов расширить старые знания, а фактически пришлось загружать новые.. Но я могу достать с полки ту самую книжку и почитать
Ответить с цитированием
Пользователь сказал cпасибо:
Matematic (21.02.2014)
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер тасм e0326 Задания за деньги 2 16.11.2013 23:32
книга по ассемблер для чайника abzdoliz Вопросы начинающих программистов 4 25.02.2013 13:50
2 задачки. Паскаль и Ассемблер alexddropp Задания за деньги 2 27.10.2012 09:59
Ассемблер - Контролер Прерываний katia2011 Assembler 0 27.02.2011 14:35
Преобразование Гильберта на tms (Ассемблер) Minority Задания за деньги 0 29.11.2010 13:43
Ассемблер AdminButchery Pascal 6 03.04.2008 14:16
Требуется программист (Си или Ассемблер). 15000$ Dirger Работа 0 06.12.2007 17:42
Ассемблер, 2 задачи Morpy Задания за деньги 4 19.12.2006 23:16
Ассемблер и С++ Zekson82 Задания за деньги 1 12.06.2006 03:38
Транслятор с фортрана на ассемблер bam Assembler 0 23.05.2006 22:56
Программист с++/с/вин ассемблер на удаленную работу skaramanga Работа 0 26.05.2005 19:29
Ассемблер в Си как организовать akvilon С/С++ 5 30.04.2005 22:06



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов