Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
2.2.Instrukcjeprzesłańdanychorazoperacjearytmetyczne
MOVDI,ES
MOVCH,X
MOVAX,BL
MOVCL,256
;Przesłaniedanej16-bitowej
;Przesłaniedanej8-bitowej
;Błąd
;Błąd(liczba256niemieścisięna8.bitach)
49
OperatorokreśleniatypuPTR
OperatorPTRmaznaczeniewtedy,gdynapodstawieinstrukcjiniemożnaokreślićroz-
miaruprzesyłanejdanej.Matoznaczeniezwłaszczapodczasstosowaniatrybuadreso-
waniapośredniego,bazowegoorazindeksowego.Dlainstrukcji
MOV[BX],0
niemożnaokreślić,czyprzesyłanadana(zero)mabyćbajtem,słowemczypodwójnym
słowem.Wiadomotylko,żedanąnależywysłaćdopamięcipodadreszapisanywreje-
strzeBX.Ztegopowoduasembler,przynapotkaniutakiejinstrukcji,zgłosibłąd.Nie-
zbędnejestwtymprzypadkuzastosowanieoperatoraokreśleniatypu,któregoskładnia
jestnastępująca:
<typ>
PTR
<wyrażenie>
gdzie<typ>możeprzyjmowaćwartościBYTE,WORDlubDWORD,a<wyrażenie>możebyć
stałąlubwyrażeniemadresowym.DlastałejoperatorPTRokreśla,żedanaliczbamabyć
traktowanaprzezasemblerjakowielkośćokreślonegotypu,np.zapisBYTEPTR0ozna-
cza,żewartośćzerowamabyćzapisananajednymbajcie,natomiastDWORDPTR0na
czterechbajtach.
Jeśli<wyrażenie>jestwyrażeniemadresowym,tooperatorokreśleniatypuPTR
wskazuje,żedanyadresjestadresemzmiennejokreślonegotypu,np.WORDPTRAozna-
czaadreswpamięcidanej16-bitowej.Natejpodstawieinstrukcjaprzesłaniabezpośred-
niegoargumentuzadresowaniempośrednimpowinnaprzyjąćjednąznastępujących
form:
MOVBYTEPTR[BX],0lubMOV[BX],BYTEPTR0
MOVWORDPTR[BX],0lubMOV[BX],WORDPTR0
MOVDWORDPTR[BX],0lubMOV[BX],DWORDPTR0
;Przesłaniebajtu
;Słowa
;Podwójnegosłowa
Operatorokreśleniatypujesttakżeużyteczny,gdytrzebawykonywaćoperacjena
poszczególnychbajtachskładowychdanejwielobajtowej.GdydlazmiennejLodługo-
ści16-bitów
LDW1234h
trzebawprogramiewykonaćoperacjenaposzczególnychbajtachtejdanej,toniezbęd-
nejestzastosowaniewinstrukcjachoperatoraBYTEPTRL(bajtmłodszy)orazBYTEPTR
L+1(bajtstarszy),np.
MOVBYTEPTRL,56h
MOVBYTEPTRL+1,0