Bài ging hp ng Chng IV: Các lnh logic, dch và quay
32
CHNG IV: CÁC LNH LOGIC, DCH VÀ QUAY
4.1 Các lnh logic
4.1.1 Các phép toán logic
a) Phép toán AND (và)
Quy tc thc hin phép toán AND gia hai s nh phân A và B c trình bày trong
ng sau:
A B A AND B
0 0 0
0 1 0
1 0 0
1 1 1
Ví d:
Cho M = 16h, N = 0Dh, hãy tính M AND N = ?
Gii:
M =
0001 0110b (16h)
N =
0000 1101b (0Dh)
M AND N = 0000 0100b = 04h
b) Phép toán OR (hoc)
Quy tc thc hin phép toán OR gia hai s nh phân A và B c trình bày trong
ng sau:
A B A OR B
0 0 0
0 1 1
1 0 1
1 1 1
Ví d:
Cho M = 16h, N = 0Dh, hãy tính M OR N = ?
Cho M = 16h, N = 0Dh, hãy tính M XOR N = ?
Gii:
M =
0001 0110b (16h)
N = 0000 1101b (0Dh)
M XOR N = 0001 1011b = 1Bh
4.1.2 Các lnh logic trong hp ng
Tng ng vi các phép toán logic trên, hp ng có các lnh sau ây:
AND <ích>, <Ngun>
OR <ích>, <Ngun>
XOR <ích>, <Ngun>
NOT <ích>
ích>: là mt thanh ghi hay mt ô nh
<Ngun>: là mt thanh ghi, mt ô nh, hoc mt hng s
ích>,<Ngun> không ng thi là hai ô nh.
Ví d:
AND AX, 002Ah
OR AL, 3Dh
NOT BX
4.1.3 ng dng các lnh logic
Ví d 1:
Hãy thay i bit du trong thanh ghi AX.
XOR AX, 8000h
Ví d 2:
Hãy xoá bit LSB trong thanh ghi BH.
AND BH, 0FEh
Ví d 3:
Nhp mt kí t s t bàn phím (‘0’, ‘1’, , ‘9’), i nó sang s thp phân tng ng.
Gii:
Ta s s dng các lnh logic chuyn i kí t sang s.
CF Msb Lsb
b) Phép dch phi
Xét mt dãy bit trong mt thanh ghi hoc mt ô nh: phép dch phi s dch chuyn
toàn b các bít trong dãy v bên phi, giá tr ca Lsb c a vào c CF, thêm bit 0 vào
trí Msb.
Trc khi dch phi: 1 1 1 0 0 1 1 0
CF
Sau khi dch phi: 0 1 1 1 0 0 1 1
→
0
Msb
Lsb CF
Bài ging hp ng Chng IV: Các lnh logic, dch và quay
35
4.2.2 Các lnh dch trong hp ng
a) Lnh dch trái
Có th s dng lnh SHL (Shift Left) hoc lnh SAL (Shift Arithmetic Left), hai lnh
này to ra cùng mt mã máy.
Cú pháp lnh:
- Dng 1: SHL <ích>, 1
- Dng 2: SHL <ích>, CL
ích>: là mt thanh ghi hay mt ô nh
Dng 1 s dch các bít ca toán hng ích sang trái 1 ln, dng 2 s dch các bít ca
toán hng ích sang trái nhiu ln, s ln dch cha trong thanh ghi CL.
Ví d 1:
SHL AX, 1 ;Dch các bít ca thanh ghi AX sang trái 1 ln
Ví d 2:
MOV CL, 3
SHL AX, CL ;Dch các bít ca thanh ghi AX sang trái 3 ln
• ng dng ca lnh dch trái:
Bít Msb ca AH c chuyn vào c CF: c CF = 1 báo hiu hin tng tràn xy ra, kt
qu không còn úng na.
b) Lnh dch phi
Có hai loi lnh dch phi: SHR (Shift Right) và SAR (Shift Arithmetic Right), tác
ng ca chúng không hoàn toàn ging nhau.
Cú pháp lnh SHR:
- Dng 1: SHR <ích>, 1
- Dng 2: SHR <ích>, CL
ích>: là mt thanh ghi hay mt ô nh
Dng 1 s dch các bít ca toán hng ích sang phi 1 ln, dng 2 s dch các bít ca
toán hng ích sang phi nhiu ln, s ln dch cha trong thanh ghi CL.
Ví d 1:
SHR BX, 1 ;Dch các bít ca thanh ghi BX sang phi 1 ln
Ví d 2:
MOV CL, 3
SHR BX, CL ;Dch các bít ca thanh ghi BX sang phi 3 ln
Bài ging hp ng Chng IV: Các lnh logic, dch và quay
36
• ng dng ca lnh dch phi:
Mt trong s các ng dng ca lnh dch phi là thc hin phép chia cho 2. Xét ví d
sau ây:
Gi s AL = 0001 0000b = 1x2
4
= 16
Sau khi dch phi 1 ln thì AL = 0000 1000b = 1x2
3
= 8
Nh vy, phép dch phi 1 ln tng ng phép chia toán hng ích cho 2.
ng quát: Phép dch phi N ln tng ng phép chia toán hng ích cho 2
N
Lnh này cng gn ging vi lnh dch trái, ch khác ch bít Msb c a vào c
CF, còn ni dung c CF li c a vào v trí Lsb.
Cú pháp lnh:
- Dng 1: RCL <ích>, 1 ;Quay mt ln
- Dng 2: RCL <ích>, CL ;Quay nhiu ln, CL cha s ln quay
ích>: là mt thanh ghi hay mt ô nh
4.3.4 Lnh quay phi qua c CF (RCR – Rotate Carry Right)
Lnh này cng gn ging vi lnh dch phi, ch khác ch bít Lsb c a vào c
CF, còn ni dung c CF li c a vào v trí Msb.
Cú pháp lnh:
- Dng 1: RCR <ích>, 1 ;Quay mt ln
- Dng 2: RCR <ích>, CL ;Quay nhiu ln, CL cha s ln quay
ích>: là mt thanh ghi hay mt ô nh
• ng dng lnh quay:
nh quay có nhiu ng dng khác nhau, di ây ch xét mt trng hp n gin:
Ví d: m s bít 1 trong thanh ghi AX
Gii:
Ta s thc hin lnh quay AX 16 ln (quay trái hay quay phi u c). Mi ln quay
thì mt bít sc a vào c CF, nu bít ó bng 1 thì tng BX lên 1 (BX cha giá tr
m c). Sau 16 ln quay thì thanh ghi AX s tr li giá tr ban u.
MOV CX, 16 ;CX cha s ln lp
XOR BX ;Xoá BX chun b cha s lng bít 1
CF
CF
Bài ging hp ng Chng IV: Các lnh logic, dch và quay
38
Lap:
ROL AX, 1 ;Quay trái AX 1 ln
JNC TiepTuc ;Nu CF = 0 (gp bít 0) thì nhy
INC BX ;Nu gp bít 1 thì tng BX