b) IF_THEN_ELSE
4.2.1 Leơnh dịch trái ( left shif t)
Leơnh SHL dịchtoánhángđíchsangtrái .Cúphápcụaleơnhnhưsau: SHL destination,1 ;dịchtráidest1bit
SHL destination,CL ;dịchtrái Nbit (CLchứaN) Cứmoêilaăn dịchtrái,moơtsô0đượctheđmvàoLSB.
CF 7 6 5 4 3 2 1 0 0 1byte Các cờ bị ạnh hưởng : SF,PF,ZFphạnạnhkêtqụa AF khođngxácđịnh
CF=bitcuôicùngđượcdịchra
OF=1nêukêtqụathayđoơidâuvàolaăndịchcuôicùng
Vídú:GiạsửDH=8AhvàCL=3.HỏigiátrịcụaDHvàCFsaukhileơnh SHL DH,CL đượcthựchieơn?
KêtqụaDH=01010000=50h,CF=0
Nhađn baỉng leơnh SHL
Chúngtahãyxétsô235decimal.Nêudịchtrái235moơt bitvàtheđm0vào beđnphạichúngtasẽcó2350.Nỏcáchkhác,khidịchtrái1bitchúngtađãnhađn10.
Đôivớisônhịphađn, dịchtrái1bitcónghĩalànhađnnóvới2.Vídú AL=00000101=5d
SHL AL,1 ;AL=00001010=10d
SHL AL,CL ;nêuCL=2 thìAL=20dsaukhithựchieơnleơnh
Leơnh dịchtráisôhĩc (SAL=ShiftArithmeticLeft)
LeơnhSHLcótheơdùngđeơnhađnmoơttoánhángvớiheơsô2.Tuynhieđntrong trườnghợpngườitamuônnhânmánhđêntínhchâtsôhĩccụaphéptoán thìleơnh SALsẽđượcdùngthaychoSHL.Cạ2leơnhđeăutáoracùngmoơtmãmáy.
Moơtsôađmcũngcótheơ đượcnhađn2baỉngcáchdịchtrái.Vídú:Nêu AX=FFFFh=-1thìsaukhidịchtrái3laănAX=FFF8h=-8
Tràn
Khichúngtadùngleơnhdịchtráiđeơnhađnthìcótheơxạyrasựtràn.Đôivới leơnhdịchtrái1laăn,CFvàOFphạnánhchínhxác sựtràndâuvàtrànkhođngdâu. Tuynhieđncáccờsẽkhođngphạnánhchínhxáckêtqụanêudịchtrái nhieăulaănbởivì dịchnhieăulaăn thựcchâtlà moơtchuoêicácdịch1laănlieđntiêpvàvìvaơycáccờCF vàOFchưphạnánhkêtquạcụalaăndịchcuôicùng.Vídú:BL=80h,CL=2thìleơnh
SHL BL,CL
sẽlàmchoCF=OF=0maịcdùtređnthựctê đãxạyracạtràndâuvàtrànkhođngdâu.
Vídú: viêtđốnmãnhađnAXvới8.Giạsửraỉngkhođngcótràn. MOV CL,3 ;CL=3
SHL AX,CL ;AX*8