Polesse #03
06 марта 1999

Assembler - Record numbers, shipment numbers in the register entry number in the register pair, scrolling the screen, set the output to screen, clear screen.

<b>Assembler</b> - Record numbers, shipment numbers in the register entry number in the register pair, scrolling the screen, set the output to
 screen, clear screen.
                   ASSEMBLER FOR BEGINNERS


(C) THINKER



   Many newspapers and magazines have a similar topic. However,
I did not know assembler, and gazed in amazement at the
"Unpretentious" procedure, clear the screen, I had to learn to
through other sources. Even now I still bad encoding, but
some of the following article seems interesting and useful.

   First, you need special assembled
program (or suite), otherwise known as simply - an assembler. I 
use ZX ASM-3, but, of course, we can take any another. At this 
point we shall return. 

  Our beloved Speccy have a few pairs of registers. Here
the main ones: AF, BC, HL, DE. You can use them to
individually or in pairs, with exactly as written above
(It is not allowed entry: AH, DL, or BE). They serve to
store numbers. These registers are eight-bit.

  For example, in Reg. 'B' we can write the number that in 
binary system does not exceed eight characters, it is possible 
to record the number of "98" (in the binary system of 
calculation - this is 1100010%, the number of ones nulikov and 
not more than eight), but you can not write the number of 350 
(in binary notation - 101100010%, the number of bits-9). In 
general, the highest number which can be written to register - 
it's 255 (% 11111111). 

   You can also record and big numbers, but not in the 
registers and the register pair (AF, BC, HL, DE). These 
register pairs already shestnadtsatibitnye and the largest 
number that can be written in them - these are the numbers that 
the binary system does not exceed sixteen digits. The largest 
number, 65535. 

   The simplest operation in assembly is to send
number in the register. For this is the mnemonic 'LD'. For 
example: 


   LD A, 5, write to the register "A" number "5"


   This program will record in the register of 'A' number '5 '. 
However, if You run the files of (for this program must first

proassemblirovat, and then run), then your PC will almost 
certainly hang. To prevent this from happening you need to 
After all the files of the team put 'RET' (Return), it will 
cause the computer to go back to assembler or BASIC 
interpreter. 

   Now our programm looks like this:


   LD A, 5, write to the register "A" number "5"

   RET; return


   Pay attention! The text appearing after the symbol ";" said
commentary on the program. To implement the program itself is 
not irrelevant and the assembly program is ignored.

Comments are entered in the text solely for the sake of 
convenience and readability of the program. For example, 
programmers often supply the sources of his comments to some 
time later did not have to painfully recall its algorithm. In 
assembler, sign, "" can be likened to the operator 'REM' BASIC 
language - all that is behind it - is not handled by the 
translator. This property Comments can be effectively used when 
debugging programs excluding from the performance of individual 
teams and the whole procedure. 

   But I digress ...


   In order to write the number in the register-pair, can also
use the mnemonic 'LD':


   LD HL, 1998; register-write a couple of "HL" - "1998"

   RET; return


   Well, now you probably want to see something on the screen.
Start simple. Probably the very first program on your
Basic'e was a program to display some nobud words. No
What is not difficult to do it in assembler. Although it can be 
a files of fold ... But we use Basic'om in principle

DO NOT themselves, but only to his routine. This routine is
ROM at address 16. (Shestantsaterichny address - # 10).

   In order to apply to any routine in the memory, you can use 
mnemonics 'CALL', after which you must specify the address, it 
is the number of cell's capacity with which to ROM is stored 
routine printing characters. For example, in assembler, you can 
call a subroutine ROM - "scrolling screen": 


   CALL 3582; appeal to the address 3582.

                 , (Equivalent to "RANDOMIZE USR 3582)

   RET; return


   But back to the display. In order to print something, you 
must pass the necessary routine information, such as: what kind 
of symbol to print. For this we use registers, and the precise 
case 'A'. In his need to write code characters to be printed, 
but first you need to specify output (screen, printer, office 
window or something). For this we use the routine ROM under the 
address 5633, and the before going to the address of 5633, you 
need to register 'A' Record number of the flow (2-main screen, 
3-printer). For example, to set the display: 


    LD A, 2, set the output to the screen (Stream 2)

    CALL 5633; subroutine call setup flow

    RET; return


   Pay attention! Register 'A' - the most important processor 
registers. It is often called a battery, because namely, with 
the participation This register is carried out most of the 
mathematical and logical operations assembler. 


   Now is the time to learn how to perform the procedure clear 
the screen. Benefit in memory of our Speccy is and this 
subroutine. For example, here's how it will look this procedure 
in assembler: 


   CALL 3435; is the address of the screen cleaning routines in 
ROM. 

   RET; return


   Now we are able to establish flow and clear the screen, then
You can try something to bring:


   CALL 3435; clear the screen

   LD A, 2; record in the battery thread number

   CALL 5633; set flow

   LD A, "*"; in Reg. 'A' puts '*' symbol

   CALL 16, a subroutine call print

   RET; return


   Instead of 'CALL 16' can write 'RST 16'. RST - a team moving 
to a strictly fixed address, (eg not allowed entry "RST 17"), 
which takes up less memory in bytes and is faster. 

   Instead, characters in the battery can enter the codes of 
these characters, without quotes. For example, if we substitute 
in the fourth row our program: "LD A, 65" - appears on the 
screen by the letter "A", tk 65 - is the decimal code of the 
letter "A". 

   Now, as I promised, let's talk about assembly program.
If you have a "Spectrum 48K - you can take advantage of programs
type GENS-3, GENS-4, ZEUS. Owners of cars with the same memory 
and 128K above were more fortunate: their attention is invited 
over about various assemblers, are the main differences between 
them are reduced to volume of service provided and some 
additional amenities, such as the speed of assembly, etc.


   Novice coders should be fine assemblers: TASM, ZX-ASM.
More advanced users will appreciate the XAS, ALASM,
STORM. Generally, the choice of a particular program 
assemblirueschey purely individual - it is rather a matter of 
taste. Later on, gaining the necessary experience, you can try 
different assemblers, finding "Their" program, in which it will 
be fun. 

   As a rule, along with the assembler you need and program
disassemblers (monitors, debuggers). Among the many such 
programs, a well-deserved popularity of the monitor STS. It is 
indispensable in case of burglary, debugging, tracing, provides 
a rich service possibilities. Detailed analysis of these and 
other funds, we will leave the following issues. 


   See you next issue!







Other articles:

Assembler - Record numbers, shipment numbers in the register entry number in the register pair, scrolling the screen, set the output to screen, clear screen.

A Tangled Web - Schedule the city server.

Contest - Best deme in BASIC.

Navezli novya - Overview of new products ON: Sex Minesweeper, The Puzzle, Leprekon, Fields of Logic, Kick da Gaga, Orion.

Wreck Time - Advertisements and announcements ...

Weakly pass - Description-passing game Monstrland (mission 4).

authors say - is coming March 8.


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

Similar articles:
B.B.S. News - New thematic BBS
Interview - an interview with the newly formed group zhelezyachnikov from Moscow: NedoPC team / group.
Advertising - Advertisements and announcements ...
Rants & Raves - Greeting'S for Eternity Industry.

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