|
Optron #25
19 апреля 1999 |
|
Likbez - Assembler view from afar: Working with bats, Comparison of the numbers, team comparisons.

Assembler: a view from afar
{} Infarh
Continued. Home - a | | 20, 21, 24
Working with bits
Logical operations, we reviewed
last time, made over the whole byte. Now pay attention to the
team working with individual bits. Well, that
They can be done? Obviously, to assign
their specific value, and check the status ... everything!
Let's start with plants.
The team that set a specific
bit can be written as "SET" (from the English.
"Set"). And its parameters are
guidance on the processed bytes and bits
for installation. As usual, we give the spellings of this
command:
SET b, r
SET b, (HL)
SET b, (ii + n)
Do you think that such a "b"? Yes, quite right! This is the
number of bits that we tormented the team. And these are
numbered bits from junior to senior level. Here,
look:
D7 D6 D5 D4 D3 D2 D1 D0
Thus, if the processor meets
accidentally click
SET 4, E
then discharge "D4" register "E" will be
unit.
Now we turn to the team "RES".
It is not hard to guess that its action
just the opposite team "SET", and it is in the reset of the
specified bit. Here options for its writing:
RES b, r
RES b, (HL)
RES b, (ii + n)
So, we can already set and reset bits. But there is another
very important effect. It consists in verifying bits, and Z80
such a team, of course, there.
Her mnemonic - "BIT". And the result of its implementation we
get to the flag "Z", which is set if the checked bits is zero
or, more precisely, is cleared.
Here vozozhnye options:
BIT b, r
BIT b, (HL)
BIT b, (ii + n)
As you can see all the spellings
the above instructions are absolutely identical. We only need
to remember that when you run it might influence
the flags and see what it is expressed ...
Mnemonic Register F Bits
(Flags)
Operator
pa-Operand C Z P / V S N H
tion
BIT b, r. x? ? 0 1
BIT b, (HL)
BIT b, (ii + n)
RES b, r. . . . . .
RES b, (HL)
RES b, (ii + n)
SET b, r. . . . . .
SET b, (HL)
SET b, (ii + n)
Legend:
"." - Flag is not changed as a result of the operation;
"X" - flag is set depending
on the result of the operation;
"?" - The value of the flag is not defined;
Other designations - see | 21.
The table shows that only a team
"BIT" affects flags, while
Other teams leave them unchanged.
Well, as soon as we are talking about the verification
bits, it is appropriate to recall and control methods
total bytes. So ...
Comparison of the numbers
As you probably created the program
need to make a comparison of some
numbers for subsequent process control in the program itself.
But how to compare the numbers and get the result in a form
understandable to the processor? AND what is meant by "the
numbers match?
So it is that they are equal. If this
fact express arithmetically, it will be
A - B = 0
And when compared to the A number greater than
(Because the comparison involves the ratio
between two numbers)? Then subtract the result will be
negative. And if less, then yes.
And now, based on subtracting the command SUB
try to develop a system comparison
Assembler.
Suppose you want to compare the number of a certain range
with the number 16:
LD A, 16, the number of available
SUB n; compare the number
Then we obtain the following:
- If n = 16, then the zero flag (Z) installed, and the carry
flag (CY) - cleared;
- If n <16, the zero flag and carry
reset;
- If n> 16, the zero flag is cleared, and
carry flag set.
As you can see, the method is quite efficient.
However, there is in him, and the lack of: changing the
contents of the register "A".
And here to us comes to the rescue ...
Team comparison
It has the mnemonic "CP" (short for
English "compare" - to compare). Team
completely analogous to the subtraction, except that the
contents of "A" does not change. The result affects only the
flags.
Traitsionno present possible options:
Mnemonic Register F Bits
(Flags)
Operator
pa-Operand C Z P / V S N H
tion
CP r x x V x 1 x
CP (HL)
CP n
CP (ii + n)
Explanation:
Flag of the P / V (parity / overflow) indicates
just two different terms relating to
two fundamentally different groups of teams.
When performing the comparison operation availability
Overflow flag indicates that as a result of the arithmetic
steps to change the sign operand.
And at the end look at a small
table: it will help you choose which
operands in the registers which should be placed for best use
of team comparisons.
Result Status Mnemonic
compare flag conditions
A = X Z = 1 Z
A <> X Z = 0 NZ
Unsigned comparisons (0 ... 255)
A <X CY = 1 C
A> = X CY = 0 NC
In view of the sign (-128 ... 127)
A <X S = 1, P
A> = X S = 0 M
Legend:
1) The table shows which flags are set when equality or
difference of operands in any direction.
2) In the "mnemonic conditions" describes testable flags when
entering commands conventional type.
3) The notation in the table below:
CY = C = Carry
NZ = (Z = 0)
NC = (C = 0)
I should note that I, for example, while
such a table in front of his eyes did not hang,
all time in terms confused.
Until next time!
Other articles:
ZX-waggons - Overview of electronic media: Fanzine 7, Kr News, 7 February Polesie, ZX-News in 1945, Don News 4. |
Iron - HDD at the Spectrum - Myths and Realities. |
Likbez - Assembler view from afar: Working with bats, Comparison of the numbers, team comparisons. |
Lit. Page - Grief "Y-II" (Diary - continued). |
Advertising - Advertisements and announcements ... |
Category X - Game Review: Twilight, Mirror, White Eagle, Kolobok Zoom 2, Quadrax, Chaos Zone. |
Category X - Electronic media: yesterday, today and tomorrow. |
Similar articles:
В этот день... 8 December