Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- writeln "**************************************************";
- writeln "* Моделирование алгоритма умножения *";
- writeln "**************************************************";
- REG INPA[8], INPB[8], RA[8], RB[8], R1[8], R2[8], R3[8], RC[8], SM[8], SCH[8], TZ[1],
- REZ[16], P[16];
- start:
- write "A=";
- read INPA;
- write "B=";
- read INPB;
- R1:=INPA;
- R2:=INPB;
- writeln "R1=",$B8 R1;
- writeln "R2=",$B8 R2;
- TZ := (R1[7..7] AND (NOT R2[7..7])) OR (R2[7..7] AND (NOT R1[7..7]));
- IF R1[7..7]=1 THEN R1 := COM(R1);
- IF R2[7..7]=1 THEN R2 := COM(R2);
- RB := 0; SCH := 8;
- WHILE:
- IF R2[0..0] = 0 THEN RA := 0;
- IF R2[0..0] = 1 THEN RA := R1;
- SM := RA + RB;
- RC := SM SHR 1;
- R3 := R2 SHR 1;
- R3[7..7] := SM[0..0];
- RB := RC;
- R2 := R3;
- SCH := SCH - 1;
- writeln "* РЕГИСТРЫ*";
- writeln "* старшая часть произведения*";
- writeln "RC=",$B9 RC;
- writeln "* сдвиг множителя*";
- writeln "R3=",$B9 R1;
- writeln "* множитель и младшая часть произведения*";
- writeln "R2=",$B9 RC;
- writeln "* сумма частичных произведений*";
- writeln "RB=",$B9 R1;
- writeln "* сумма множимого и частичных произведений*";
- writeln "SM=",$B9 RC;
- IF SCH <> 0 THEN GOTO WHILE;
- REZ[0..7] := R2;
- REZ[8..15] := RC;
- REZ[15..15] := TZ;
- P := REZ;
- IF REZ[15..15] = 0 THEN
- write "Результат REZ= ",$B16 P," = ",$D4 P;
- IF REZ[15..15] = 1 THEN GOSUB WREZ;
- writeln "***************** Конец программы ****************";
- END;
- WREZ:
- write "Результат REZ= ",$B16 REZ," = -";
- REZ[15..15]:=0;
- writeln $D4 REZ;
- RETURN;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement