
Стековые машины с изменяемой адрестностью команд
Адресность - это число адресов, содержащихся в команде цифровой машины.
Прежде команды цифровой машины были, как правило, одной и той же адресности, и поэтому говорили об адресности машины. Известны одно-, двух-, трех- и четырехадресные, а с появлением стековой архитектуры также нуль-адресные машины.
В литературе можно встретить рассуждения о том, какая адресность выгоднее, и доказательства исключительной целесообразности той или иной из них, иногда вполне убедительные. Например, в конце 50-х годов, когда уже стала ясной необходимость значительного увеличения емкости запоминающих устройств, но еще не были осознаны возможности непрямой адресации, вывод о том, что машина должна быть одноадресной [1] был, безусловно, правильным. Однако развитие в последующие годы относительной и косвенной адресации и применение собственной памяти процессора в виде общецелевых регистров с короткими адресами сделали этот вывод недействительным.
Попытки ответить на вопрос: "Какая адресность лучше?" - продолжаются [2], хотя в общем ясно, что каждая адресность хороша по-своему и выгодна в соответствующих условиях. Практика создания цифровых машин привела к компромиссному решению - в системе команд машины предусматривают команды разной адресности [3].
Наш ответ: адресность команды должна быть переменной, автоматически изменяющейся применительно к конкретным условиям использования команды. Настоящая статья посвящена обоснованию этого утверждения и изложению предложений по практическому осуществлению его.