Chương 4: CÁC LNH LOGIC , DỊCH VÀ QUAY
4.2.1 Lnh dịch trái ( left shif t)
Lnh SHL dịch tốn háng đích sang trái .Cú pháp cụa lnh như sau : SHL destination ,1 ; dịch trái dest 1 bit
SHL destination , CL ; dịch trái N bit ( CL chứa N) Cứ mi laăn dịch trái , mt sơ 0 được theđm vào LSB .
CF 7 6 5 4 3 2 1 0 0 1 byte
Các cờ bị ạnh hưởng : SF,PF,ZF phạn ạnh kêt qụa AF khođng xác định
CF= bit cuôi cùng được dịch ra
OF= 1 nêu kêt qụa thay đoơi dâu vào laăn dịch cuơi cùng
Ví dú : Giạ sử DH =8Ah và CL=3 . Hỏi giá trị cụa DH và CF sau khi lnh SHL DH,CL được thực hin ?
Kêt qụa DH=01010000=50h , CF=0
Nhađn baỉng leơnh SHL
Chúng ta hãy xét sơ 235decimal . Nêu dịch trái 235 mt bit và theđm 0 vào beđn phại chúng ta sẽ cĩ 2350 . Nỏ cách khác , khi dịch trái 1 bit chúng ta đã nhađn 10.
Đơi với sơ nhị phađn, dịch trái 1 bit cĩ nghĩa là nhađn nĩ với 2.Ví dú AL=00000101=5d
SHL AL,1 ; AL=00001010=10d
SHL AL,CL ; nêu CL=2 thì AL=20d sau khi thực hin lnh
Chương 4 : Các lnh dịch và quay 50 Lnh SHL cĩ theơ dùng đeơ nhađn mt tốn háng với h sơ 2 . Tuy nhieđn trong trường hợp người ta muơn nhân mánh đên tính chât sơ hĩc cụa phép tốn thì lnh SAL sẽ được dùng thay cho SHL . Cạ 2 lnh đeău táo ra cùng mt mã máy .
Mt sơ ađm cũng cĩ theơ được nhađn 2 baỉng cách dịch trái . Ví dú : Nêu AX=FFFFh= -1 thì sau khi dịch trái 3 laăn AX=FFF8h = -8
Tràn
Khi chúng ta dùng lnh dịch trái đeơ nhađn thì cĩ theơ xạy ra sự tràn . Đơi với lnh dịch trái 1 laăn , CF và OF phạn ánh chính xác sự tràn dâu và tràn khođng dâu . Tuy nhieđn các cờ sẽ khođng phạn ánh chính xác kêt qụa nêu dịch trái nhieău laăn bởi vì dịch nhieău laăn thực chât là mt chui các dịch 1 laăn lieđn tiêp và vì vy các cờ CF và OF chư phạn ánh kêt quạ cụa laăn dịch cuơi cùng . Ví dú : BL=80h , CL=2 thì lnh
SHL BL,CL
sẽ làm cho CF=OF=0 maịc dù tređn thực tê đã xạy ra cạ tràn dâu và tràn khođng dâu .
Ví dú : viêt đốn mã nhađn AX với 8 . Giạ sử raỉng khođng cĩ tràn .
MOV CL,3 ; CL=3 SHL AX,CL ; AX*8