Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
18
Asembler.Wykładyićwiczenia
Zasadniczokażdyzrejestrówmapewnezadaniedospełnienia,każdyznichpełniinną
rolęimożnajepogrupowaćwedługpodobnychzadań:
rejestrypowszechnegozastosowania,
rejestrysegmentowe,
rejestrywskaźnikoweiindeksowe,
wskaźnikrozkazów,
rejestrznaczników(rejestrflagowy)FLAGS.
2.1.
Rejestrypowszechnegozastosowania
Osiemrejestrówpowszechnegozastosowania(każdyodługości16bitów)jestużywanych
donajczęściejstosowanychrozkazówjakomiejsce,skądpobieramydane,miejsceprzeznaczenia,
jakowskaźnikidopamięciiwreszciejakoliczniki.Każdyztychośmiurejestrówmożebyć
załadowanyzpamięci,możnateżznichdopamięciładować.Mogąbyćużywanedowykonywa-
niaoperacjiarytmetycznychilogicznych.Naprzykład:
000
MOVAX,89
MOVDX,10
ADDAX,DX
000
;prześlijdorejestruAXdaną89
;prześlijdorejestruDXdaną10
;dodajtedwieliczby89i10,awynikprześlijdorejestru
AX
RejestryCX,SIlubinnerejestrypowszechnegozastosowaniamogłybyzastąpićużyte
wtymprzykładzierejestryAXlubDXzrówniedobrympowodzeniem.
Pomimowspólnychcechrejestrówpowszechnegozastosowania,każdyznichzosobna
maswoją„osobowość”.
RejestrAXznanyjakoakumulator.Używanyzawszetam,gdziewykonywanejest
mnożenielubdzielenie.Jesttonajbardziejefektywnyrejestrużywanywoperacjach
arytmetycznych,logicznychiprzesyłaniadanych.Dolna,8-bitowaczęśćrejestruAXnosi
nazwęAL(ang.A−Low),częśćgórna,też8-bitowa,nosinazwęAH(ang.A−High).Taki
podziałrejestrunadwie8-bitoweczęścijestwygodnypodczasdziałańnadanych
1-bajtowych,tworzącdwaniezależnerejestry.
000
MOVAH,1
MOVAL,AH
DECAL
000
;prześlijdorejestruAHwartość1
;kopiujwartośćAHdoAL.
;odejmij(zmniejsz,dekrementuj)o1zawartośćrejestruAL
WwynikutychrozkazówrejestrAXmawartość0100.
WpowyższymprzykładzierejestryBX,CXiDXmogłybyteżwystąpićjakorejestry
16-bitowelubjakodwarejestry8-bitowe.
RejestrBXmożewskazywaćpołożenie,lokalizacjęwpamięci.16-bitowawartość
zapamiętanawtymrejestrzemożebyćpoczęściużytadoadresowaniapołożeniawpa-
mięci.Naprzykład,dorejestruALładowanajestzawartośćpamięcispod(umownego)
adresu6:
000