Цитата:
?????? 000030
НЕИЗВЕСТНАЯ КОМАНДА
0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0
Алгоритм: R0:=0;
while ((R0[7]==0) || (R2[7]==0))
{
R1:=R1<<1 | 0; R2[07:00]:=R2[07:00]<<1 | C;
R2[15:08]:=R2[7]; R3:=R3<<1 | C; R0++;
}
N:=0; Z:=(R0==0); V:=0; C:=0
Описание: По этой команде сперва очищается регистр R0. Далее исполняется цикл, окончанием которого является установка в разряде 07 R0 или R2 единицы. В цикле над регистрами проводятся следующие действия: регистры с R1 по R3 сдвигаются влево, при этом в R1 в младший разряд вдвигается ноль, а в R2 и R3 – содержимое разряда C, при этом старшая часть R2 расширяется знаковым разрядом младшей части, R0 инкрементируется. Так как останов исполнения команды производится при наличии единицы в разряде 7 в R0 или R2, то после исполнения команды R0 может принимать значения от 0 до 108 или 2008. Значение 2008 получается в том случае, если до исполнения операции младшая часть R2 была равна нулю и был сброшен бит С.
Признаки: N – очищается, Z – устанавливается, если значение в R0 равно нулю, в противном случае очищается, V – очищается, C – очищается.