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ść”.
•
RejestrAX–znanyjakoakumulator.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.
•
RejestrBX–moż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