Здравствуйте, qwertyuiop, Вы писали:
Q>Не очень. Для крутости могу подкинуть идею. Я давно думал, что среди различных типов операндов не мешало бы ввести "сокращенные константы". Обычные константы занимают целое слово и требуют для чтения отдельного цикла, а сокращенные можно вставить в код команды. Наиболее часто используемые константы — это "единица, остальные нули", "N единиц, 16-N нулей", а также их инверсии. Их можно закодировать 6-ю разрядами: 4 разряда — номер бита (например единицы, при остальных нулях), 1 разряд — тип константы (один из двух описанных), третий — инверсия полученного числа. Q>Наличие таких операндов позволило бы сократить систему команд, удалив такие как инкремент/декремент, проверка бита в слове, установка/очистка бита и т.п.
А оно точно даст выгоду хоть в чем-то? Мне пока это не очевидно. Сокращение системы команд самоцелью не является. Из того, что я понял о философии RISC, её плюс в том, что схема управляющего устройства для такого набора команд существенно проще и быстрее за счет того, что набор команд становится меньше и проще. Ты же предлагаешь идею, которая с одной стороны пытается сократить набор команд, но достичь этого за счёт усложнения логики декодирования команды, т.е. комбинируем худшее из RISC и CISC. Где я ошибаюсь?