The two basic arithmetic operations of the Z3 are the addition and substraction of the exponent and signs. Addition and subtraction require more than one cycle because, in the case of floating point numbers, care has to be taken to set the size of the exponent of both arguments to the same value. This requires some extra comparisons and shifting. The number of cycles needed for the Lu and Ld instructions is variable, because it depends on the exponent of the argument. A number can be stored in memory (Ps) in zero cycles when the result of the last arithmetic operation can be redirected to the desired memory address. In this case, the cycle needed for the store instruction overlaps the last cycle of the arithmetical operations.

It is a little bit surprising, that the conditional branch is missing. Konrad Zuse described in his papers from 1936 till 1945 a lot of scientific and numerical problems, which he wanted to solve with his machines. For this calculations he did not need the conditional branch. At least in 1944, he mentioned the conditional branch indirectly in the context of free programs. Konrad Zuse introduced Free Programs (Freie Rechenpläne): The definition is: Bei den freien Rechenplänen beeinflussen die eigentlichen Variablen den Ablauf der Rechnung. Zunächst können die bei den quasistarren Rechenplänen besprochenen Planvariablen wie variable Operationszeichen, Strukturzeichen usw. Funktionen der eigentlichen Variablen sein. Es kann z.B. die Art der Operation in einer Rechengleichung erst errechnet werden.

Slav Petrov 2001-07-02