Re: промежуточный трёхадресный код
От: 0x7be СССР  
Дата: 27.01.23 08:21
Оценка: 3 (1)
Здравствуйте, VjcheslavV, Вы писали:

VV>В разных книгах про промежуточный трёхадресный код читал

VV>Не догоняю как на нём написать к примеру
VV>
VV>a[i+1]=&a[i+2];
VV>

VV>Заранее спасибо...

Как-то так:

Операция      Arg1  Arg2  Arg3
-------------------------------
сложение      i     2     temp1 // вычисляем индекс массива в правой части
адрес-индекса a     temp1 temp2 // берём адрес элемента массива в правой части
сложение      i     1     temp3 // вычисляем индекс массива в левой части
адрес-индекса a     temp3 temp4 // берём адрес элемента массива в левой части
переместить   temp2 temp4       // присвоение.

Всё очень сильно завсит от выбранной архитектуры команд. Например, можно представить команду mov с такими режимами адресации аргументов, что вся задача в одну операцию уложится.
Отредактировано 27.01.2023 8:22 0x7be . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.