in4 писал(а):
nop м. использоваться для выравнивания группы команд, если в адресуемую ячейку пихать несколько команд
16=1+5+5+5
8=4+4 тоже Или как ты будешь адресоваться на половинку байта?
Вообще можно и адресовать половинку байта. Просто сокращается все-тот же 1 бит в старшем разряде.
Тогда выравнивать ничего ненадо!
in4 писал(а):
А четыре бита на команду еще не было К тому же если старший бит - признак call то разрядность шины адреса ограничивается 15 битами
не обязательно, если в команде кодируется не адрес, а смещение.
Туда же8) Хотя должна присутствовать возможность записать адрес с помощью литерала.
Так как и call & if в предложенном варианте адрес перехода получают на стеке данных.
in4 писал(а):
oleg писал(а):
А при предлагаемом мною подходе нет вообще никаких завязок на разрядность шин. Лишь бы разрядность данных была кратна разрядности адресов.
это не обязательное условие, можно не использовать лишние биты...
Нет, обязательное -так как в случае data_stack_width = 32 а return_stack_width = 16 бит можно реализовать >R и R> а если они не кратны - то уже нельзя 8(
in4 писал(а):
разные условия я предлагал из расчета "код условия в команде", и не рассматривал отображение ресурсов на память...
Ну а я предлагаю в память все лишнее проекцировать!
Кстати для хохмы можно и алу в память спроекцировать и оставить лишь одну команду запуска алу
а результат получать по необходимому смещению!!! Хотя изврат конечно страшный, но он ничем не хуже использования префикса для арифметических команд!
ВООТ
in4 писал(а):
Я бы + и xor оставил в 4хбитных командах, а остальные вынес бы в команды с префиксом.
и м.б. все-таки 2 if-а? Хотя второй тоже можно в "префиксные"...
Не хочется префиксов. Лучше я резульаты работы алу в память замаплю!! Чес слово.
И зачем два ифа? Чем плох вариат с нулем? Флаги можно какие угодно получать просто прочитав их из памяти. Это может и не так красиво - но зато просто очень.
in4 писал(а):
Потом (после написания тестов и примеров программ) все команды можно по частоте отсортировать. Частые - в 4х битные, остальные - в "префиксные"... М. всего одного префикса хватит...
Да конечно хватит. Просто 32-е команды уже Чак Мур (впрочем у него по идее 28 команд было )
то есть уже никакой новизны не будет
in4 писал(а):
И желательно */ к арифметике добавить или умножение с делением на нем делать...
ага, и больше всего на кристале места будет занимать умножитель и делитель
Или сделать умножение многотактным? то есть за один такт - одна итерация умножения? как у Чака