First page Back Continue Last page Overview Text

Notes:


So here is the processing of the exponent on the right where the value of the exponent is in the variable called exp10. Do not forget to ignore the blanks in names and also notice the beautiful and expensive multiply symbol - it is not just a capital X, but another special character. Today we would use the commercial asterisk for multiply and we gave up the blanks in names so that we do not have to underline or otherwise distinguish the reserved words.

Also note that the symbol := was used for assignment - strangely they did not create an arrow symbol for this purpose. Today we use = for assignment and have a lot of bugs because we often confuse equality with assignment.

So here we have loop exp10 times and multiply the number R that many times by 10 or 1/10 depending on the sign of the exponent, as required by mathematics.

Each line on the assembly code represents 42 bits of information - one machine word. It is quite amazing how tricky and short the implementation is, for example at the arrow on the left, we have a single multiply instruction that corresponds to a multiply or divide by 10 depending on the sign of the exponent as it should be, and as it is clearly indicated in the Algol code.

The text in square brackets that the arrow points at is just a comment. The letters "mkf" mean the operation code for floating multiply. The next instruction is "hv", a goto, or hop in Danish, marking the end of the loop. But where is the if, the conditional? How is this possible?