 Wane informacje (2:482/33)  -WANE- 
 Msg  : 82 of 93                            Snt Loc
 From : Marcin Macinski                     2:482/33        Fri, 11 Oct, 16:20
 To   : All                                                 Fri, 18 Oct, 21:57
 Subj : Assembler, the story begins [3, loop]

Vitay All!

 Dzisiaj bdzie ptla. Wszyscy informatycy mwi i pisz, e ptla jest podstaw
programowania. Maj racj. Dlatego na dzisiejszym wykadzie omawia bdziemy
swko, ktre brzmi "LOOP", przedtem jednak porozwodz si troch nad niektrymi
rejestrami i ich zastosowaniem.

 AX, BX, CX i DX to rejestry 16-bitowe (co znaczy, e moemy do nich zapisa
16-bitow liczb). Skadaj si z 2 rejestrw 8-bitowych - AX z AH i AL, BX z BH
i BL, CX z CH i CL, DX z DH i DL. Rozumiemy to w ten sposb, e jeli zrobimy
tak:
 mov ax,1234h
to w rejestrach AH i AL bdziemy mieli odpowiednio wartoci 12h oraz 34h.
 Rejestry te s tzw. rejestrami oglnego przeznaczenia. Kady z nich ma jeszcze
dodatkowe zastosowania, ale o tym przy okazji.


 Jak wczeniej zapowiadaem, bdzie ptla. W Pascalu ptla FOR wyglda tak:
 for i:=99 downto 0 do
 begin
    ...
 end;

 W assemblerze identyczna ptla bdzie wyglda nastpujco:
 mov cx,99
 pocztek_ptli:
    ...
 LOOP pocztek_ptli


> LOOP etykieta
    wywoanie ptli; jeli CX>0, powoduje jego zmniejszenie o 1 oraz skok do
    "etykieta". Jeli CX=0, skok do "etykieta" jest pomijany i procesor
    przechodzi do wykonywania kolejnej instrukcji. Wobec tego przed wejciem do
    ptli naley do rejestru CX wpisa ilo powtrze.

 Co zrobi, jeli wewntrz ptli zmieniamy warto CX? Jest wiele sposobw,
poka najprostszy (:
 mov cx,99
 ptla:
    push cx
    ...
    mov cx,jaka_liczba
    ...
    pop cx
 loop ptla

 Jak wida, na pocztku ptli umieszczam warto CX na stosie, pod koniec za
odtwarzam j zdejmujc ze stosu. Znajc ten sposb moesz atwo stworzy sobie
ptl w ptli, co jest Twoim dzisiejszym ZADANIEM DOMOWYM.

 Any questions?

  ,
 /;`\ koniu
 ` | \____
 .-(_ ___ ):.
  `  | ,-'| ;
     ^    ^
--- GoldED/386 2.50+
 * Origin: Sraczka nie czeka (2:482/33)
