Echo #03
31 марта 1997

Book - Secrets ZX-Spectrum: Computer Arithmetic.

<b>Book</b> - Secrets ZX-Spectrum: Computer Arithmetic.
   Chapter 4.


   C O M P L U T E R N A Z

   A & R O M E T I K A



   The unit cell of computer memory
Presented at the processor Z80, locates in
imagine a single word (B), consisting of 8
digits, each of which can be either 0
or 1. The transition from the binary representation
to a decimal is very simple. We write down a number of
at a time of 2 ^ 7 2 ^ 6 ,..., 2 ^ 1 2 ^ 0.
Then, under each of these numbers, we write
single-digit binary representation. Adding together only the 
number of the upper number under which turned out to be unity, 
we get the decimal value. For example, the binary number 
01001101: 


   128 64 32 16 8 4 2 1

   0 1 0 0 1 1 0 1

   ----------------------
       64 8 4 1 = 77


   Contents of memory (bytes) can
be a positive number between 0 ...
255.


   Sometimes advantageous to consider these numbers
the values ​​of the sign. MSB (leftmost bit) determines the 
sign of 0, if +, 1 if -. In this interpretation

we have the numbers in the range -128 ... 127.
However, the computer always executes
act only on the natural numbers without
sign. Therefore, the ZX-SPECTRUM is used to represent numbers 
add up to code two. Numbers less than zero are recorded in

it as 256 + K. For example, the number of -7
represented as 256-7 = 249. In this system, the most 
significant bit is interpreted as a sign of a number. 
Therefore, the problems associated with the arithmetic does not 
exist. Main arithmetic lead to accurate results regardless of 
the choice of ways of writing numbers. For example, 246 +1 = 
247 is the obvious equation for unsigned numbers,

but it is also true equality if
considered as 246 -7, since then
247 = 256 + (-6) denotes -6.


   Using such small numbers is not enough, so large numbers are 
to be stored in multiple bytes, following one another. In the 
ZX-SPECTRUM important the role played by the 16-digit number 
(16 bits). Their figures are divided into 2 groups of 8 bits. 
Left byte is called the highest, and the right junior.

In all computers, organized by
Z80, adopted a rule that if two successive byte addresses X, X 
+1 contain any number, then X is located under the address low 
byte, and X +1 - Senior. To determine how many contain the 
cells, must be the most significant byte is multiplied by 256 
and add a junior. If this should be

a negative number represented in the code
two's complement something else subtract
2 ^ 16 = 65536. The 16-bit numbers can
store numbers in the range 0 .. 65535
(Unsigned) or -32728 ... 32727 (signed).


   When programming in machine code
often necessary to perform
various operations on bits. Using
decimal representation in this difficult, and the binary is too 
cumbersome. Therefore, the most convenient is the 12th

record. To record a 16-hexadecimal numbers (geksodetsimalnyh) 
use the numbers 0 through 9 and letters A through F (10 - a A, 
11 B, 12 - C, 13 - D, 14 - E, 15 - F).



   Recalculation of the 16-hexadecimal representation of
10-ary not difficult. Rule: multiply the next digit to the next 
level of number 16 and folding the product. For example,

16-decimal number FFFF is represented as:


  15 * 16 ^ 3 +15 * 16 ^ 2 +15 * 16 ^ 1 +15 * 16 ^ 0 = 15 * 
4096 + +15 * 256 +15 * 16 +15 = 65535



   The transition from binary form to a 16-symmetric and
back is particularly simple. Divide the number of binary digits 
into groups of 4 bits and each Four represent the 
16-hexadecimal digit. For example, 1001111110 = 0010 0111 1110 =

27E.


   As can be seen, the main advantage
16 hexadecimal numbers is the ease of transition
to a binary representation and vice versa,
while high-density recording. Next 16-decimal number will be 
preceded by # sign.



   Ways to encode large numbers and floating point numbers for 
different computers are different. In the ZX-BASIC all

numbers are stored in 5 consecutive
bytes. Integers in the range -65536 ...
65535 are encoded differently than the other.
The first byte in their view is always 0. The last byte of a 
positive number is 0, and negative 255. In the third and

fourth, respectively, will accommodate junior and senior bytes 
of numbers, negative values ​​are stored in the code

add up to 2. For example, the number 38 looks like this: 0 0 0 
38 0, and the number 743 = 2 * 256 +231 has the form: 0 0 231 2 
0. In turn, the number -1231 is written as 0

255251 49 0, since
256 * 251 +49 = 65536-1231.


   With the other numbers are all still confusing
more. Used the fact that every number can be uniquely 
represented in the form: 2 ^ N * M, where M - number in the 
range [1 / 2, 1]. In the first byte of the ZX-SPECTRUM stores 
the value N +128. In the other 4 placed the number of M

in binary form, or rather M * 2 ^ 32, so
that the most significant bit, which should always be equal to 
1, is used to store the sign. One means negative, and zero - 
plus. 


   Assume that five consecutive
memory cells contain the number 130 212 16 34
178. They are interpreted as a number:


   -2 ^ (150-128) * (212 / 2 ^ 8 +16 / 2 ^ 16 +34 / 2 ^ 24 +
178 / 2 ^ 32)


   and bytes 106 112 4 231 78 represent
number:


   2 ^ (106-128) * ((128 +112) / 2 ^ 8 +4 / 2 ^ 16 +231 /
/ 2 ^ 24 +78 / 2 ^ 32).


   The advantage of high-level languages ​​(in
including the ZX-BASIC) is that
Software released by records represent different numbers in 
memory. 




Other articles:

Introduction - On the control interface of the newspaper.

Assembler - An interesting trick with the assembler.

roof was demolished - DI: HALT is not always caused a breakdown of ... Santa Claus.

fun begin - The main event of 1996. Dictionary programmer.

own opinion - IMP talks about the development of Russia's ZX-demoscene.

What are heard behind the hill - What is now doing all the known Western manufacturers software on Speccy? ..

Hour ottyaga - Notes of a Terminator T-1000.

Small news - What happens to the Speccy in Belarus? ..

Form - The survey goes on ...

Fantasy - A fantastic tale "Ice and Flame" (continued).

Prikolchik - Prikolchik's Navapolatsk?. What letter comes to us in the laboratory.

Description - Description, prohodilka game BLINKY'S SCARRY SCHOOL.

Presentation - REALSOFT is a strategic game Technodrom.

Ottyag - have a good time can be different. Book of problems - "puzzles" math.

Programmers - On additional functions TR-DOS 5.04.

Programmers - On the music format modules Sound Tracker Pro and source player.

HARDWARE - Mode switch Profi / Pentagon.

Tricks-2 - How to throw a screen to one INT.

Tricks-2 - On the correct handling Retry / Abort / Ignore in the TR-DOS.

interesting letter - Letters from readers containing two different things: - If you burn a floppy drive on the buggy;

Presentation-2 - Description of the TEXT PRINT v1.2.

Humor - A story about Stirlitz.

Humor - Stirlitz: Elephants go north.

Book - Secrets ZX-Spectrum: TOC.

Book - Secrets ZX-Spectrum: Keyboard.

Book - Secrets ZX-Spectrum: Editor.

Book - Secrets ZX-Spectrum: ZX-BASIC.

Book - Secrets ZX-Spectrum: Computer Arithmetic.

Book - Secrets ZX-Spectrum: memory usage.

Book - Secrets ZX-Spectrum: BASIC system variables.

Book - Secrets ZX-Spectrum: Channels and Streams.

Book - Secrets ZX-Spectrum: System Procedures.

Book - Secrets ZX-Spectrum: Bugs in the System.

Advertising - Advertisements and announcements ...

Afterword - That was not included in this number.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Scene - a survey of manufacturers of games, "What makes you do the game for the Spectrum in a strange time? "
authoring program - Description of the program for viewing files in the format ". GRF".

В этот день...   21 November