Цитата Сообщение от Ewgeny7 Посмотреть сообщение
Вот отсюда и резонный вопрос - если размещать слова по нечетным адресам, то это должно вызвать много геморроя для контроллера памяти, ведь он вынужден будет считывать байт из "следующего" слова, чтобы подпихнуть его процессору. При этом не забыть "сдвинуть" байты на магистрали из старшего в младший, и наоборот. Это как-то реализовано в наших PDP-машинах? ДВК, БК и иже с ними?
Мне такой подход в корне не нравится, и проще следить за четностью адресов слов.
На шине МПИ байтовое чтение отсутствует, всегда читается полное слово, а затем, если команда байтовая, процессор берет нужный байт - младший при A0=0 и старший при A0=1. Устройства при чтении и словной записи обычно игнорируют младший бит адреса A0, поэтому при чтении адреса 0 и адреса 1 всегда будет прочтено слово с адресов 0 и 1, соответственно в младшем байте значение адреса 0, в старшем - адреса 1. Поэтому никаких сдвигов байтов нет, дали команду записи слова по адресу 1 - запишется слово в адреса 0 и 1, а не в 1 и 2.

- - - Добавлено - - -

Цитата Сообщение от Ewgeny7 Посмотреть сообщение
Также микропроцессор выставляет адрес "как
есть", и чтение слов по нечетному адресу может приводить к некорректно прочитанным данным, поскольку
внешняя память и устройства обычно не поддерживают такой режим."
Да, такое может быть только с устройствами на странице ввода-вывода, если у них дешифрация сделана коряво. Но обычно при чтении такого не бывает. А вот многие устройства не обрабатывают сигнал WTBT, потому и запись байта может пройти криво.

- - - Добавлено - - -

Цитата Сообщение от Ewgeny7 Посмотреть сообщение
Есть ли в наборе команд ВМ1 однобайтовые команды? Упоминали, что вроде как есть (?). Так ли это? Я сейчас сам ковыряюсь с ассемблером, пытаюсь найти подобное.
Пока же даже команда HALT вижу представленной 00 00. То есть, два байта, слово.
Нет, все команды занимают целое слово, может занимать от одного до трех слов, в зависимости от используемых методов адресации. Есть команды, работающие с байтами. Большинство команд работают как со словами, так и с байтами. Ограничение есть при работе с регистрами, можно работать только с младшим байтом, к тому же команды MFPS и MOVB при записи в регистр старший байт расширяют знаковым разрядом младшего байта. Ну и автоинкрементый (код 2) и автодекрементный (код 4) методы адресации при работе с байтами у регистров R6 (указатель стека) и R7 (счетчик команд) изменяют значение на 2, а не на 1, как при работе со словами.