Вычислим полную поверхность параллелипипеда с ребрами A, B и C, используя "E97". Значения A, B и C будем хранить в ячейках памяти 40-44.
Формула для вычисления поверхности, как известно, имеет вид:
S = 2 * (A * B + A * C + B * C) = 2 * [A * (B + C) + B * C]
Запишем код программы для "E97" (не пугайтесь, что она получится такой длинной,
она состоит из нескольких простых кусочков):
Адрес | Код | Операция | Комментарии |
---|---|---|---|
0000 | 0E6D |
100 ==> SP | Определить SP для корректной |
0004 | 9C0D |
ввод ==> R1 | A ==> R1 |
0008 | 011E |
R1 ==> (40) | A ==> (40) |
000C | 9C0D |
ввод ==> R1 | B ==> R1 |
0010 | 011E |
R1 ==> (42) | B ==> (42) |
0014 | 9C0D |
ввод ==> R1 | C ==> R1 |
0018 | 011E |
R1 ==> (44) | C ==> (44) |
001C | 01E0 |
(42) ==> R0 | B ==> R0 |
0020 | 0101 |
R0 ==> R1 | B ==> R1 |
0022 | 02E0 |
R0 + (44) ==> R0 | B + C |
0026 | 05E0 |
R0 * (40) ==> R0 | A * (B + C) |
002A | 05E1 |
R1 * (44) ==> R1 | B * C |
002E | 0201 |
R1 + R0 ==> R1 | A * (B+C) + B * C |
0030 | 0211 |
R1 + R1 ==> R1 | 2 * [A * (B + C) + B * C] |
0032 | 011E |
R1 ==> (46) | результат ==> S |
0036 | 9C0D |
R1 ==> дисплей | вывод значения S |
003A | 0F00 |
стоп | окончание программы |
003C | ---- |
--------------- | ---------------------------- |
0040 | 0002 |
A |   |
0042 | 0003 |
B |   |
0044 | 0004 |
C |   |
0046 | 0034 |
S (результат) | (имейте ввиду, что hex-число 34 |
Проверьте, как это работает на "E97". Введите 3 целых числа и прочитайте
результат на дисплее. Разберитесь, как устроена программа.
Внимание! Если в Internet Explorer апплет работает некорректно (окно ввода открывается только один раз для первого числа и затем больше не появляется, прочитайте примечание здесь).